[CMake] CXX_COMPILER_FLAGS also passed to the linker?

Bill Hoffman bill.hoffman at kitware.com
Tue Jan 2 17:08:12 EST 2007


Mike Jackson wrote:
> I am using the intel c++ compiler for OS X and I am trying to shutoff 
> some remarks that the compiler kicks out. According to the Intel Docs 
> if I pass "-wd[RemarkNum],[RemarkNum]..." to the compiler I can 
> shutoff what I want.
>   So I fired up ccmake and set the CMAKE_CXX_FLAGS to "-wd981" and 
> then ran make. The compile proceeds file (without the remarks) until 
> the link phase. The linker is dying because "d981" is being passed to 
> the linker which is not right. Is this a bug in CMake or am I not 
> using ccmake correctly?
>
>
> /usr/bin/icpc   -DHDFWrapper_EXPORTS -wd981 
> -I/usr/local/include/boost-1_33_1 
> -I/Users/mjackson/Task_7/Workspace/PFImport/src 
> -I/Users/mjackson/Task_7/Workspace/PFImport/.. 
> -I/Developer/Headers/FlatCarbon 
> -I/Users/mjackson/Task_7/Workspace/MHDataModel/.. 
> -I/Users/mjackson/Task_7/Workspace/MHDFInterface/..   -DDEBUG -Wall -o 
> MHDataModel/MHDFInterface/CMakeFiles/HDFWrapper.dir/Users/mjackson/Task_7/Workspace/MHDFInterface/MHDFInterface.o 
> -c /Users/mjackson/Task_7/Workspace/MHDFInterface/MHDFInterface.cpp
>
>
> Linking CXX shared library ../../Bin/libHDFWrapper.dylib
> cd 
> /Users/mjackson/Task_7/Workspace/PFImport/Build-Intel/MHDataModel/MHDFInterface 
> && /usr/local/bin/cmake -P 
> CMakeFiles/HDFWrapper.dir/cmake_clean_target.cmake
> cd 
> /Users/mjackson/Task_7/Workspace/PFImport/Build-Intel/MHDataModel/MHDFInterface 
> && /usr/local/bin/cmake -E cmake_link_script 
> CMakeFiles/HDFWrapper.dir/link.txt --verbose=1
> /usr/bin/icpc  d981 -dynamiclib -headerpad_max_install_names  -o 
> ../../Bin/libHDFWrapper.dylib -install_name 
> /Users/mjackson/Task_7/Workspace/PFImport/Build-Intel/Bin/libHDFWrapper.dylib 
> "CMakeFiles/HDFWrapper.dir/Users/mjackson/Task_7/Workspace/MHDFInterface/utilities.o" 
> "CMakeFiles/HDFWrapper.dir/Users/mjackson/Task_7/Workspace/MHDFInterface/MHDFInterface.o" 
> -L/usr/local/lib -lz -lhdf5_hl -lhdf5 -lhdf5_hl -lhdf5 -lhdf5_hl 
> -lhdf5 -ltiff
> IPO Warning: can not find "d981"
> libtool: can't open file: d981 (No such file or directory)
> make[2]: *** [Bin/libHDFWrapper.dylib] Error 1
> make[1]: *** [MHDataModel/MHDFInterface/CMakeFiles/HDFWrapper.dir/all] 
> Error 2
> make: *** [all] Error 2
Currently, they are because on many systems it is require.  When 
building shared libraries the compiler sometimes compiles code that is 
generated on the fly and the flags need to match.  Also, when doing 
template instantiatiation at link time compilers need the flags.  Most 
compilers just ignore the flags they don't need.  What is icpc?

-Bill



More information about the CMake mailing list