2

最近、OSXをMountainLionに更新しました。残念ながら、FreeBSDはOpenMPをサポートしないコンパイラスイート(llvm / clang)に切り替えました。これは私が必要としているものであり、Appleはそのスイートをデフォルトのコンパイルツールとして設定しました。

幸い、OS X10.8には古いgcc4.2コンパイラが含まれており、一部のレガシーコードでも引き続き使用できます。

私はcmake(v2.8)を使用してプログラムをビルドします。gccコンパイラを使用するために、私は最初にCMakeLists.txtスクリプトで2つの変数を設定しようとしました。具体的には、とを設定CMAKE_C_COMPILERCMAKE_CXX_COMPILERます。ただし、これら2つの変数を設定しても効果はありませんでした。cmakeはOpenMPをサポートしていないllvmコンパイラを使用し続けました。

次に、2つの環境変数を設定しようとしCCましCXXた。(。profile / .bashrcスクリプトで)CMake変数に使用されているのと同じコンパイラーを指しています。これらの2つの変数を使用することで、ソースコードをコンパイルできます。

私の質問は、2つのCMake変数(CMAKE _..._ COMPILER)のポイントは何ですか?どのように使用するのですか?

ありがとう。

4

1 に答える 1

8

これらの変数は実際に使用できますが、コンパイラーが自動的に検出される前に設定する必要があります。通常、コマンドラインまたはキャッシュ初期化スクリプトを使用してこれを行います。

# by setting CC anc CXX
CC=gcc-4.2 CXX=g++-4.2 cmake ...

# by passing the definitions of CMAKE_{C,CXX}_COMPILER to cmake directly
cmake -DCMAKE_C_COMPILER:FILEPATH=`which gcc-4.2` -DCMAKE_CXX_COMPILER:FILEPATH=`which g++-4.2` ...

# by passing a cache-initialization script
cmake -C init_cache.cmake

ファイルに次のinit_cache.cmakeようなものが含まれている場合

set(CMAKE_C_COMPILER CACHE FILEPATH /usr/bin/gcc-4.2)
set(CMAKE_CXX_COMPILER CACHE FILEPATH /usr/bin/g++-4.2)
于 2013-03-08T10:49:32.000 に答える