[CMake] Incorrect extra MinGW link flags

Stiaan Gerber sgerber at sun.ac.za
Thu May 19 10:55:47 EDT 2011


On 19/05/11 14:41, Yuri Timenkov wrote:
> May be you should use Cygwin build of CMake?
>
> On Thu, May 19, 2011 at 12:46 PM, Stiaan Gerber <sgerber at sun.ac.za
> <mailto:sgerber at sun.ac.za>> wrote:
>
>     Dear list
>      
>     On Windows, MinGW (gcc 4.5.2), CMake 2.8.4.
>      
>     I have a project building two executables. The first one builds
>     correctly. On the second one it appears to me as though CMake adds
>     flags to link to the standard MinGW libraries (mingw32, moldname,
>     mingwex, ...) with an incorrect .lib suffix.  (See the output
>     below) As far as I can tell this is totally unnecessary since
>     these flags are automatically added by the gfortran compiler. So
>     in the end I have -lmingw32.lib (presumably added by CMake, which
>     fails) and -lmingw32 (automatically added by gfortran, which
>     correctly links libmingw32.a)
>      
>     My CMakelists file for the target CE_SEMFEM is
>     -------------------------------------------------------------------------------------------------------
>     cmake_minimum_required (VERSION 2.8.4)
>     project (CE_SEMFEM Fortran)
>      
>     set (CE_SRCS
>         src/CE_SEMFEM.f95
>         src/CE_config_module.f95
>     )
>      
>     add_executable (CE_SEMFEM ${CE_SRCS})
>     target_link_libraries (CE_SEMFEM SEMFEM CE_FEMxml xmlparse)
>     -------------------------------------------------------------------------------------------------------
>      
>     The libraries SEMFEM, CE_FEMxml and xmlparse are built elsewhere
>     in the project.
>      
>     Ideas how I can fix this? Any help is much appreciated.
>      
>     Stiaan
>      
>     -------------------------------------------------------------------------------------------------------
>     Linking Fortran executable CE_SEMFEM.exe
>     Driving: C:\MinGW\bin\gfortran.exe -v
>     CMakeFiles/CE_SEMFEM.dir/src/CE_SEMFEM.f95.obj
>     CMakeFiles/CE_SEMFEM.dir/src/CE_con
>     fig_module.f95.obj -o CE_SEMFEM.exe
>     -LC:\Loher_Berechner_repo\build\Utilities\xml_parser
>     -LC:\Loher_Berechner_repo\build
>     \SEMFEM\trunk\SEMFEM\core -Lc:\MinGW\lib\gcc\mingw32\4.5.2
>     -Lc:\MinGW\lib\gcc -Lc:\MinGW\mingw32\lib -Lc:\MinGW\lib -L\M
>     inGW\lib ..\..\core\SEMFEM.lib
>     ..\..\..\..\..\Utilities\xml_parser\libCE_FEMxml.a
>     ..\..\..\..\..\Utilities\xml_parser\li
>     bxmlparse.a C:\MPICH2\lib\fmpich2g.lib -lmingw32.lib
>     -lmoldname.lib -lmingwex.lib -lmsvcrt.lib -luser32.lib -lkernel32.l
>     ib -ladvapi32.lib -lshell32.lib -lmingw32.lib -lmoldname.lib
>     -lmingwex.lib -lmsvcrt.lib -lgfortran -shared-libgcc
>     Using built-in specs.
>     COLLECT_GCC=C:\MinGW\bin\gfortran.exe
>     COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.5.2/lto-wrapper.exe
>     Target: mingw32
>     Configured with: ../gcc-4.5.2/configure
>     --enable-languages=c,c++,ada,fortran,objc,obj-c++
>     --disable-sjlj-exceptions --wi
>     th-dwarf2 --enable-shared --enable-libgomp
>     --disable-win32-registry --enable-libstdcxx-debug
>     --enable-version-specific-r
>     untime-libs --disable-werror --build=mingw32 --prefix=/mingw
>     Thread model: win32
>     gcc version 4.5.2 (GCC)
>     COMPILER_PATH=c:/mingw/bin/../libexec/gcc/mingw32/4.5.2/;c:/mingw/bin/../libexec/gcc/;c:/mingw/bin/../lib/gcc/mingw32/4.
>     5.2/../../../../mingw32/bin/
>     LIBRARY_PATH=c:/mingw/bin/../lib/gcc/mingw32/4.5.2/;c:/mingw/bin/../lib/gcc/;c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../..
>     /../../mingw32/lib/;c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../;/mingw/lib/
>     COLLECT_GCC_OPTIONS='-v' '-o' 'CE_SEMFEM.exe'
>     '-LC:\Loher_Berechner_repo\build\Utilities\xml_parser'
>     '-LC:\Loher_Berechn
>     er_repo\build\SEMFEM\trunk\SEMFEM\core'
>     '-Lc:\MinGW\lib\gcc\mingw32\4.5.2' '-Lc:\MinGW\lib\gcc'
>     '-Lc:\MinGW\mingw32\lib'
>      '-Lc:\MinGW\lib' '-L\MinGW\lib' '-shared-libgcc' '-mtune=i386'
>     '-march=i386'
>      c:/mingw/bin/../libexec/gcc/mingw32/4.5.2/collect2.exe -Bdynamic
>     -u ___register_frame_info -u ___deregister_frame_info
>     -o CE_SEMFEM.exe
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../crt2.o
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/crtbegin.o
>     -LC:\Loher_Berechner_repo\build\Utilities\xml_parser
>     -LC:\Loher_Berechner_repo\build\SEMFEM\trunk\SEMFEM\core -Lc:\MinGW
>     \lib\gcc\mingw32\4.5.2 -Lc:\MinGW\lib\gcc -Lc:\MinGW\mingw32\lib
>     -Lc:\MinGW\lib -L\MinGW\lib -Lc:/mingw/bin/../lib/gcc/m
>     ingw32/4.5.2 -Lc:/mingw/bin/../lib/gcc
>     -Lc:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/lib
>     -Lc:/mingw/bin/..
>     /lib/gcc/mingw32/4.5.2/../../.. -L/mingw/lib
>     CMakeFiles/CE_SEMFEM.dir/src/CE_SEMFEM.f95.obj
>     CMakeFiles/CE_SEMFEM.dir/src
>     /CE_config_module.f95.obj ..\..\core\SEMFEM.lib
>     ..\..\..\..\..\Utilities\xml_parser\libCE_FEMxml.a
>     ..\..\..\..\..\Utilit
>     ies\xml_parser\libxmlparse.a C:\MPICH2\lib\fmpich2g.lib
>     -lmingw32.lib -lmoldname.lib -lmingwex.lib -lmsvcrt.lib -luser32
>     .lib -lkernel32.lib -ladvapi32.lib -lshell32.lib -lmingw32.lib
>     -lmoldname.lib -lmingwex.lib -lmsvcrt.lib -lgfortran -lmi
>     ngw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -luser32
>     -lkernel32 -ladvapi32 -lshell32 -lmingw32 -lgcc_s -lgcc -lmol
>     dname -lmingwex -lmsvcrt
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/crtend.o
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe:
>     cannot find -lmingw32.lib
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe:
>     cannot find -lmoldname.lib
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe:
>     cannot find -lmingwex.lib
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe:
>     cannot find -lmsvcrt.lib
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe:
>     cannot find -luser32.lib
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe:
>     cannot find -lkernel32.lib
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe:
>     cannot find -ladvapi32.lib
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe:
>     cannot find -lshell32.lib
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe:
>     cannot find -lmingw32.lib
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe:
>     cannot find -lmoldname.lib
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe:
>     cannot find -lmingwex.lib
>     c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe:
>     cannot find -lmsvcrt.lib
>     collect2: ld returned 1 exit status
>     -------------------------------------------------------------------------------------------------------
>
>     _______________________________________________
>     Powered by www.kitware.com <http://www.kitware.com>
>
>     Visit other Kitware open-source projects at
>     http://www.kitware.com/opensource/opensource.html
>
>     Please keep messages on-topic and check the CMake FAQ at:
>     http://www.cmake.org/Wiki/CMake_FAQ
>
>     Follow this link to subscribe/unsubscribe:
>     http://www.cmake.org/mailman/listinfo/cmake
>
>

I do not quite understand the suggestion. I do not have Cygwin installed
and I do not wish to go that route. I use CMake with the "MinGW
Makefiles" generator.

Kind regards
Stiaan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20110519/000de6db/attachment-0001.htm>


More information about the CMake mailing list