我通过xcode-select --install
安装了gcc编译器,但是安装的版本是4.2.1
,所以无法使用OpenMp标志-fopenmp
来编译源代码。
我试图通过Homebrew
安装编译器,并将其链接到导出的gcc,但它不起作用。我尝试安装gcc以构建最新的GNU版本,但是在构建操作系统后询问我是否要使用xcode-select --install
安装gcc。
此外,我遵循了对此question的回答,但出现了此错误:
错误:名称为“ clang-omp”的可用公式
我是否可以遵循任何解决方案或建议在我的Mac和任何类似Unix的设备上执行OpenMP代码,而无需安装特定的依赖项,因为在此answer中有解决方案,但用户可以安装依赖吗?
答案 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"
libomp
与brew install libomp
一起安装。