2

WindowsでCMakeを介して構成された多数のプロジェクトを構築するために使用しているpythonビルドスクリプトがあります。以前は、MSVC を使用してこれらのプロジェクトをビルドしていましたが、すべて問題ありませんでした。これらの python スクリプトを使用して、ICC をビルドに組み込みたいと考えています。必要に応じて、ネイティブ コンパイラを UI で直接選択できますが、すべてをプログラムで行いたいと考えています。

問題は、構文エラーで失敗するか、cmake オプションに注意を払っていないことです。

設定できます:

"CMAKE_CXX_COMPILER:PATH":"C:/Program Files (x86)/Intel/Composer XE 2013/bin/intel64/icl.exe",
"CMAKE_C_COMPILER:PATH":"C:/Program Files (x86)/Intel/Composer XE 2013/bin/intel64/icl.exe"

そして、cmakeItemsそれは世代に供給される配列の一部です:

generate(x86Generator, cmakeItems, osName, buildTarget)

その他のオプションは、コマンド ライン スイッチ (x86generatorおよびbuildTarget) を介して設定されるか、デフォルトで設定されます (つまり、osNameスクリプト自体で検出されます)。

何かを試す前に、実行したコマンドラインプロンプトからこれを実行しています

iclvars intel64

icc bin ディレクトリで、すべての icc 変数が適切に構成さiclれていることを確認します。コマンド ラインに入力して、パスにあることを確認できます。

上記を実行すると、C コンパイラがデフォルトの msvc コンパイラのままになります。

私も実行してみました:

set(CMAKE_C_COMPILER_INIT icl)
set(CMAKE_CXX_COMPILER_INIT icl)

しかし、それは私にicl部分で構文エラーを与えています. おそらくパスの問題だと思いましたが、次のことを行っています。

set(CMAKE_C_COMPILER_INIT "C:\Program Files (x86)\Intel\Composer XE 2013\bin\intel64\icl")
set(CMAKE_CXX_COMPILER_INIT "C:\Program Files (x86)\Intel\Composer XE 2013\bin\intel64\icl")

構文エラーも出ています。

では、cmake を呼び出す Python スクリプトから C/CXX コンパイラをプログラムで設定するにはどうすればよいでしょうか?

4

2 に答える 2

0

コマンド ラインで、環境変数CCとを使用してコンパイラを指定しますCXX。cmake コマンドの環境を適切に準備する必要があり、CMakeLists.txt 内部を変更しないでください。

例えば

import subprocess
subprocess.Popen('CC=%s CXX=%s cmake ../path/to/src' %('icc','icpc'))
于 2013-04-04T15:52:13.403 に答える
0

答えは次のとおりです。

ICC は Windows 上の CMake では動作しないため、気にしないでください。

http://www.cmake.org/Bug/view.php?id=6929

何らかの形式の Visual Studio コンパイラで実行してから、icprojconverter をいじる方がはるかに優れています。

http://software.intel.com/en-us/articles/ICProjConvert100

于 2013-04-04T19:12:06.473 に答える