Hello I want to build a project with intel compiler.
With default gcc I usually run:
cmake -DCMAKE_CXX_FLAGS=-I/some/path /path/to/project
And this works fine.
cmake -DCMAKE_CXX_COMPILER=icpc -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_FLAGS=-I/some/path /path/to/project
When I try to use non-default compiler it does not path CMAKE_CXX开发者_运维问答_FLAGS
variable content to compiler at all.
How to fix this?
Correct Answer is:
You need to specify the type of the
CMAKE_CXX_FLAGS
variable:-DCMAKE_CXX_FLAGS:STRING=-I/some/path
You need to provide full path to C and C++ compilers:
cmake -DCMAKE_C_COMPILER=/opt/intel/bin/icc -DCMAKE_CXX_COMPILER=/opt/intel/bin/icpc -DCMAKE_CXX_FLAGS:STRING=-some-flag
The good way to do what you expect is to use:
export CC=icc CXX=icpc cmake -DCMAKE_CXX_FLAGS=-I/some/path /path/to/project
Is there some reason that you can't add the include path (from your CMAKE_CXX_FLAGS
) to your CMakeLists.txt
file?
add_includes(/some/path)
I know you don't want to edit the CMakeLists.txt file, but what about editing it allowing the user to select the compiler -- something like
SET(MYVAR TRUE CACHE BOOL "Use intel compiler?")
And later on, if MYVAR
variable is set, do the add_includes()
..? You can also use some package finding utilities (CMAKE provides some) to find the specific compiler include files, etc.
精彩评论