CMake:如何将编译器标志添加到非默认编译器

Art*_*yom 3 c++ cross-platform cmake

您好我想用intel编译器构建一个项目.

使用默认gcc我经常运行:

cmake -DCMAKE_CXX_FLAGS=-I/some/path  /path/to/project
Run Code Online (Sandbox Code Playgroud)

这很好用.

cmake -DCMAKE_CXX_COMPILER=icpc -DCMAKE_C_COMPILER=icc  -DCMAKE_CXX_FLAGS=-I/some/path  /path/to/project
Run Code Online (Sandbox Code Playgroud)

当我尝试使用非默认编译器时,它根本不会将CMAKE_CXX_FLAGS变量内容路径到编译器.

如何解决这个问题?

正确的答案是:

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

    -DCMAKE_CXX_FLAGS:STRING=-I/some/path
    
    Run Code Online (Sandbox Code Playgroud)
  2. 您需要提供C和C++编译器的完整路径:

    cmake -DCMAKE_C_COMPILER=/opt/intel/bin/icc -DCMAKE_CXX_COMPILER=/opt/intel/bin/icpc -DCMAKE_CXX_FLAGS:STRING=-some-flag
    
    Run Code Online (Sandbox Code Playgroud)

Nad*_*LEM 6

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

export CC=icc CXX=icpc cmake -DCMAKE_CXX_FLAGS=-I/some/path  /path/to/project
Run Code Online (Sandbox Code Playgroud)