您好我想用intel编译器构建一个项目。
使用默认gcc我经常运行:
cmake -DCMAKE_CXX_FLAGS=-I/some/path /path/to/project
这很好用。
cmake -DCMAKE_CXX_COMPILER=icpc -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_FLAGS=-I/some/path /path/to/project
当我尝试使用非默认编译器时,它根本不会将CMAKE_CXX_FLAGS
变量内容路径到编译器。
如何解决这个问题?
正确答案是:
您需要指定CMAKE_CXX_FLAGS
变量的类型:
-DCMAKE_CXX_FLAGS:STRING=-I/some/path
您需要为C和C ++编译器提供完整路径:
cmake -DCMAKE_C_COMPILER=/opt/intel/bin/icc -DCMAKE_CXX_COMPILER=/opt/intel/bin/icpc -DCMAKE_CXX_FLAGS:STRING=-some-flag
答案 0 :(得分:6)
做你期望的好方法是使用:
export CC=icc CXX=icpc cmake -DCMAKE_CXX_FLAGS=-I/some/path /path/to/project
答案 1 :(得分:3)
是否有一些原因导致您无法将包含路径(从CMAKE_CXX_FLAGS
)添加到CMakeLists.txt
文件中?
add_includes(/some/path)
答案 2 :(得分:2)
我知道你不想编辑CMakeLists.txt文件,但是如何编辑它允许用户选择编译器 - 比如
SET(MYVAR TRUE CACHE BOOL "Use intel compiler?")
稍后,如果设置了MYVAR
变量,请执行add_includes()
..?您还可以使用一些包查找实用程序(CMAKE提供一些)来查找特定的编译器包含文件等。