On 12/11/2017 04:34 PM, John Cary wrote: > Bill Hoffman wrote: >> LINK: command "xilink ... /out:FortranCInterface.exe ..." failed (exit code >> 1169) >> LIBCMT.lib(winapisupp.obj) : error LNK2005: >> __crtSetUnhandledExceptionFilter already defined in MSVCRT.lib(MSVCR120.dll) >> >> Did you change any of the default compiler/linker flags? It looks like >> it is mixing run time libraries somehow. > > Yes, we do a replacement of MD with MT as we need fully static builds. > > We do this early in configuration, using > > The "Dynamic Replace" method described at > > https://cmake.org/Wiki/CMake_FAQ#Dynamic_Replace > > This is possible with 3.8.2. Is there a way to get that behavior back?
This is likely due to commit v3.9.0-rc1~144^2~1: ``` FortranCInt: Pass CONFIG flags to try_compile This change ensures that Intel Fortran's /libs: in CMAKE_Fortran_FLAGS and Visual C++'s /MT or /MD in the CMAKE_C_FLAGS_RELEASE do not conflict with each other. ``` With that change I'm able to reproduce the failure with VS 2013 and Intel 2016: ``` cmake_minimum_required (VERSION 3.7) project(Test C Fortran) string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") include(FortranCInterface) FortranCInterface_VERIFY() ``` If the project is changing the C and C++ flags to use a static runtime library, it should do that for Fortran too: ``` string(REPLACE "/libs:dll" "/libs:static" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}") ``` Adding that line fixes the problem for me. -Brad -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake