How can I install openMP on my new MacBook Pro (with Mac OS Catalina)?

跟風遠走 提交于 2020-03-14 05:21:42

问题


I installed Xcode (and also the command line tools) but terminal says (when I'm compiling):

gcc -o task -fopenmp task.c
clang: error: unsupported option '-fopenmp'

I tried to install openmp via brew but people say that it's not available anymore on homebrew, they suggest to try

brew instal llvm

But I get the same error. I tried also in the boneyard

brew install homebrew/boneyard/clang-omp

but the repository doesn't exist anymore.

Could you help me? I just need to learn openMP, I don't think that is so difficult to install...

Thank you!

Kind regards,

Nico


回答1:


This https://iscinumpy.gitlab.io/post/omp-on-high-sierra/ suggest to do the following:

brew install libomp

To install the OpenMP runtime components/libraries.

Then, when compiling:

  • use -Xpreprocessor -fopenmp in place of -fopenmp in the compile step (-c option)
  • add -lomp to the linking step

Note that the above page also mention that CMake 3.12 or later will automatically find the right way of adding OpenMP on MacOS:

cmake_minimum_required(VERSION 3.12)
project(openmptest CXX)

add_executable(sample sample.cpp)

find_package(OpenMP REQUIRED)
target_link_libraries(sample PRIVATE OpenMP::OpenMP_CXX)

Note: I didn't test any of this but it sounds relatively sane




回答2:


To build with OpenMP support, you need to make sure you're not invoking Apple's clang from Xcode. Even if you install llvm or gcc via brew, you should try gcc -v and clang -v in your terminal session. Both likely invoke Apple's version.

You can use GNU gcc or LLVM; both are available via brew. If you use LLVM, you'll also need to install libomp.

GNU gcc (currently at version 9)

brew install gcc
gcc-9 -o task -fopenmp task.c

Note that you invoke this version of gcc explicitly by suffixing gcc with a - and the major version number, e.g.: gcc-9

LLVM

Brew installs LLVM as keg-only so that it doesn't conflict with Apple's version. You'll therefore need to make sure you invoke the right clang. You'll also need to specify where the libomp library is located.

brew install llvm libomp
`brew --prefix llvm`/bin/clang -L`brew --prefix`/lib -o task -fopenmp task.c


来源:https://stackoverflow.com/questions/58344183/how-can-i-install-openmp-on-my-new-macbook-pro-with-mac-os-catalina

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!