3

こんにちは、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デフォルト以外のコンパイラを使用しようとすると、変数の内容がコンパイラにまったくパスされません。

これを修正する方法は?

正解は:

  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

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.

于 2009-11-06T11:58:46.177 に答える