[CMake] FortranCInterface not working with 3.9.0 with Intel 2015

John Cary cary at txcorp.com
Mon Dec 11 16:34:38 EST 2017


Thanks for your help.

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

specifically

https://cmake.org/Wiki/CMake_FAQ#Dynamic_Replace

This is possible with 3.8.2.  Is there a way
to get that behavior back?

Thx........


> Thanks for sending the files.  I think I might have found something.
> The FortranCInterface.exe is not linking because of mismatched linker
> commands.  Here are the errors:
>
> Did you change any of the default compiler/linker flags?  It looks like
> it is mixing run time libraries somehow.
>
>
> [100%] Linking Fortran executable FortranCInterface.exe
>
> LINK: command "xilink /nologo
> @CMakeFiles\FortranCInterface.dir\objects1.rsp
> /out:FortranCInterface.exe /implib:FortranCInterface.lib
> /pdb:C:\winsame\cary\usimall\builds\ulixes\ser\CMakeFiles\FortranCInterface\FortranCInterface.pdb
> /version:0.0 /machine:x64 /INCREMENTAL:NO /subsystem:console symbols.lib
> myfort.lib user32.lib /MANIFEST
> /MANIFESTFILE:FortranCInterface.exe.manifest" failed (exit code 1169)
> with the following output:
> xilink: executing 'link'
>
> LIBCMT.lib(winapisupp.obj) : error LNK2005:
> __crtSetUnhandledExceptionFilter already defined in MSVCRT.lib(MSVCR120.dll)
>
> LIBCMT.lib(crtheap.obj) : error LNK2005: _calloc_crt already defined in
> MSVCRT.lib(MSVCR120.dll)
>
> LIBCMT.lib(crt0dat.obj) : error LNK2005: _amsg_exit already defined in
> MSVCRT.lib(MSVCR120.dll)
>
> LIBCMT.lib(crt0dat.obj) : error LNK2005: _cexit already defined in
> MSVCRT.lib(MSVCR120.dll)
>
> LIBCMT.lib(crt0dat.obj) : error LNK2005: _exit already defined in
> MSVCRT.lib(MSVCR120.dll)
>
> LIBCMT.lib(crt0dat.obj) : error LNK2005: _initterm_e already defined in
> MSVCRT.lib(MSVCR120.dll)
>
> LIBCMT.lib(crt0dat.obj) : error LNK2005: exit already defined in
> MSVCRT.lib(MSVCR120.dll)
>
> LIBCMT.lib(mlock.obj) : error LNK2005: _lock already defined in
> MSVCRT.lib(MSVCR120.dll)
>
> LIBCMT.lib(mlock.obj) : error LNK2005: _unlock already defined in
> MSVCRT.lib(MSVCR120.dll)



More information about the CMake mailing list