macOS Mojave上的OpenMP

时间:2019-04-16 17:53:35

标签: macos gcc openmp homebrew

我通过xcode-select --install安装了gcc编译器,但是安装的版本是4.2.1,所以无法使用OpenMp标志-fopenmp来编译源代码。

我试图通过Homebrew安装编译器,并将其链接到导出的gcc,但它不起作用。我尝试安装gcc以构建最新的GNU版本,但是在构建操作系统后询问我是否要使用xcode-select --install安装gcc。

此外,我遵循了对此question的回答,但出现了此错误:

  

错误:名称为“ clang-omp”的可用公式

我是否可以遵循任何解决方案或建议在我的Mac和任何类似Unix的设备上执行OpenMP代码,而无需安装特定的依赖项,因为在此answer中有解决方案,但用户可以安装依赖吗?

2 个答案:

答案 0 :(得分:1)

OpenMP代码可以在mojave上使用AppleClang进行编译。 Xcode包含一个必须调用openmp的预处理器。

  • 您必须安装了omp; libomp是最常见的。我也用过libiomp5。

  • 调整cmake中的标志以指向您的openmp解决方案。

cmake .. -DCMAKE_C_COMPILER="clang" -DCMAKE_CXX_COMPILER="clang++" -DOpenMP_C_FLAGS=-fopenmp=lomp -DOpenMP_CXX_FLAGS=-fopenmp=lomp -DOpenMP_C_LIB_NAMES="libomp" -DOpenMP_CXX_LIB_NAMES="libomp" -DOpenMP_libiomp5_LIBRARY="/opt/local/lib/libomp.dylib" -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp /opt/local/lib/libomp.dylib -I/opt/local/include" -DOpenMP_CXX_LIB_NAMES="libomp" -DOpenMP_omp_LIBRARY=/opt/local/lib/libomp.dylib -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp /opt/local/lib/libomp.dylib -I/opt/local/include" 

libiomp5的类似标志:请参见this line

答案 1 :(得分:1)

由于Richard的回答,我得以在Mojave上编译使用OpenMP的项目。我要添加此答案,因为他的某些标志当前错误或无用。

-DOpenMP_C_LIB_NAMES "libomp"
-DOpenMP_CXX_LIB_NAMES "libomp"
-DOpenMP_C_FLAGS "-Xpreprocessor -fopenmp -I/usr/local/include"
-DOpenMP_CXX_FLAGS "-Xpreprocessor -fopenmp -I/usr/local/include"
-DOpenMP_omp_LIBRARY "/usr/local/lib/libomp.dylib"
-DOpenMP_libomp_LIBRARY "/usr/local/lib/libomp.dylib"

libompbrew install libomp一起安装。