3

你好我想用英特尔编译器构建一个项目。

使用默认 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变量内容路径到编译器。

如何解决这个问题?

正确答案是:

  1. 您需要指定CMAKE_CXX_FLAGS变量的类型:

    -DCMAKE_CXX_FLAGS:STRING=-I/some/path
    
  2. 您需要提供C 和 C++ 编译器的完整路径:

    cmake -DCMAKE_C_COMPILER=/opt/intel/bin/icc -DCMAKE_CXX_COMPILER=/opt/intel/bin/icpc -DCMAKE_CXX_FLAGS:STRING=-some-flag
    
4

3 回答 3

6

做你期望的好方法是使用:

export CC=icc CXX=icpc cmake -DCMAKE_CXX_FLAGS=-I/some/path  /path/to/project
于 2009-11-06T11:49:24.070 回答
3

是否有某些原因您不能将包含路径(来自您的CMAKE_CXX_FLAGS)添加到您的CMakeLists.txt文件中?

add_includes(/some/path)
于 2009-11-05T16:07:05.650 回答
2

我知道您不想编辑 CMakeLists.txt 文件,但是如何编辑它以允许用户选择编译器——比如

SET(MYVAR TRUE CACHE BOOL "Use intel compiler?")

稍后,如果MYVAR设置了变量,请执行add_includes()..?您还可以使用一些包查找实用程序(CMAKE 提供一些)来查找特定的编译器包含文件等。

于 2009-11-06T11:58:46.177 回答