[CMake] 3.1 can't link my MinGW executables any more.
Bill Somerville
bill at classdesign.com
Mon Dec 1 12:04:57 EST 2014
On 01/12/2014 16:33, Brad King wrote:
Hi Brad,
> On 11/29/2014 06:58 AM, Bill Somerville wrote:
>> -lgfortran -lquadmath -lm -lkernel32 -luser32 -lgdi32 -lwinspool
>> -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
>>
>> but in 3.1.0-rc2 I get:
>>
>> -lquadmath -lm -lkernel32 -luser32 -lgdi32 -lwinspool
>> -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
> The missing -lgfortran may be due to a failure to detect the implicit
> libraries linked by the gfortran front-end. Compare these files:
>
> CMakeFiles/3.0.2/CMakeFortranCompiler.cmake
> CMakeFiles/3.1.0-rc2/CMakeFortranCompiler.cmake
>
> In particular check the values of
>
> CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES
> CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES
>
> recorded in the two files. Check CMakeFiles/CMakeOutput.log and/or
> CMakeFiles/CMakeError.log for information about how the values were
> extracted. Something here may have changed in 3.1.
An initial scan of the CMakeFiles/CMakeOutput.log for the same project
between 3.0.2 and 3.1.0-rc2 shows huge differences and I can't see any
obvious single cause of the issue. Here are the two files FWIW:
https://dl.dropboxusercontent.com/u/4192709/CMakeOutput.log.3.0.2
https://dl.dropboxusercontent.com/u/4192709/CMakeOutput.log.3.1.0-rc2
One thing that looks suspicious are the lines mapping words to content
along the lines of :
arg [-lmingw32] ==> lib [mingw32]
arg [-lgcc] ==> lib [gcc]
arg [-lgcc_eh] ==> lib [gcc_eh]
which in 3.1 look like this:
arg [-lmingw32] ==> lib []
arg [-lgcc] ==> lib []
arg [-lgcc_eh] ==> lib []
I'm not sure where they are generated.
>
> Thanks,
> -Brad
>
73
Bill
G4WJS.
More information about the CMake
mailing list