OS X 10.8 "Mountain Lion"にアップグレードしたばかりで、後悔します。OS X 10.8、llvm、CMakeを使ったOpenMP
OpenMPを使用する私の(単純な)並列コードをビルドすることができなくなりました。
ここを見れば、Appleはもうgccを使っていないが、llvmはライセンス関連の問題の可能性が高いと理解している。残念ながら、 'llvm'はOpenMPをサポートしていません。
OpenMPをベースにした多くのプログラムがOS Xで動作しなくなるとは思わないので、私の質問は次のとおりです。Mountain LionでOpenMPを有効にするにはどうすればいいですか?
フリスト・イリエフの優れた答えを読んだ後、私は私が最初に思ったよりも多くの行方不明だと思います。
私はXCodeを使用していません。建物はCMakeとmake/gccに基づいています。昨日私はmacports経由でgcc 4.2をインストールしましたが、今日のように私のコードはソースフォームになっています。なぜなら、いくつかの奇妙な理由から、コンパイルをgcc(OpenMPに関する同じエラー)に切り替えることができないからです。
問題は今CMakeがllvmコンパイラを使い続けていることです。
set(CMAKE_C_COMPILER "/opt/local/bin/gcc-apple-4.2")
set(CMAKE_CXX_COMPILER "/opt/local/bin/gcc-apple-4.2")
と私はまた、2つの環境変数を追加しました::ルートCMakeLists.txtで は、私は次の2行を追加
export CXX=/opt/local/bin/gcc-apple-4.2
export CC=/opt/local/bin/gcc-apple-4.2
cmakeのは、OpenMPは(FIND_PACKAGEは(OpenMPの))私が手を見つけるためにしようとすると次の出力:
-- The compiler is /opt/local/bin/gcc-apple-4.2
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
[...]
CMake Error at /opt/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (message):
Could NOT find OpenMP (missing: OpenMP_C_FLAGS OpenMP_CXX_FLAGS)
Call Stack (most recent call first):
/opt/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:291 (_FPHSA_FAILURE_MESSAGE)
/opt/local/share/cmake-2.8/Modules/FindOpenMP.cmake:159 (find_package_handle_standard_args)
demo/CMakeLists.txt:8 (FIND_PACKAGE)
は私が手動で/opt/local/bin/gcc-apple-4.2
を実行しようと、それは欠落libgompによる失敗しました。
よろしく
10.8にgccをインストールするだけです:http://stackoverflow.com/questions/9353444/how-to-use-install-gcc-on-mac-os-x-10-8-xcode-4-4 –
私はその質問を見つけましたが、それはコマンドラインツールのインストールに関連していました。今、私は実際のgccのインストールに関連する答えを見てきました。ありがとうございました。 –
XCodeコマンドラインツールに付属しているので、MacportからGCC 4.2を追加する必要はありませんでした。あなたは[GUIから追加でインストールする]必要があります(http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_3.html)。それでも、XCodeを使用しないので、私はあなた自身のGCC 4.7.2をビルドすることを強く推奨します - OpenMP 3.1の機能をサポートする最新かつ最大のもの: –