Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何在我的新MacBook Pro(使用Mac OS Catalina)上安装openMP?_Macos_Clang_Openmp_Llvm_Homebrew - Fatal编程技术网

Macos 如何在我的新MacBook Pro(使用Mac OS Catalina)上安装openMP?

Macos 如何在我的新MacBook Pro(使用Mac OS Catalina)上安装openMP?,macos,clang,openmp,llvm,homebrew,Macos,Clang,Openmp,Llvm,Homebrew,我安装了Xcode(以及命令行工具),但终端说(在编译时): 我试图通过brew安装openmp,但有人说它在家用brew上不再可用,他们建议试试 brew instal llvm 但我也犯了同样的错误。 我也在墓地里试过 brew install homebrew/boneyard/clang-omp 但是存储库已经不存在了 你能帮我吗? 我只需要学习openMP,我不认为这是很难安装 谢谢大家! 亲切问候, Nico这建议您执行以下操作: brew install libomp 安装O

我安装了Xcode(以及命令行工具),但终端说(在编译时):

我试图通过brew安装openmp,但有人说它在家用brew上不再可用,他们建议试试

brew instal llvm
但我也犯了同样的错误。 我也在墓地里试过

brew install homebrew/boneyard/clang-omp
但是存储库已经不存在了

你能帮我吗? 我只需要学习openMP,我不认为这是很难安装

谢谢大家!

亲切问候,

Nico

这建议您执行以下操作:

brew install libomp
安装OpenMP运行时组件/库

然后,在编译时:

gcc -o task -fopenmp task.c
clang: error: unsupported option '-fopenmp'
  • 在编译步骤中使用
    -Xpreprocessor-fopenmp
    代替
    -fopenmp
    -c
    选项)
  • -lomp
    添加到链接步骤
请注意,上面的页面还提到,CMake 3.12或更高版本将自动找到在MacOS上添加OpenMP的正确方法:

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)

注意:我没有测试任何一个,但它听起来相对合理

要使用OpenMP支持构建,您需要确保您没有从Xcode调用Apple的clang。即使通过brew安装
llvm
gcc
,也应在终端会话中尝试
gcc-v
clang-v
。两者都可能引用苹果的版本

您可以使用GNU gcc或LLVM;两者都可以通过brew获得。如果使用LLVM,还需要安装
libomp

GNU gcc(目前为版本9) 请注意,您可以通过在
gcc
后面添加
-
和主要版本号来显式调用此版本的gcc,例如:
gcc-9

LLVM Brew仅将LLVM安装为keg,以避免与苹果版本冲突。因此,您需要确保调用正确的
clang
。您还需要指定
libomp
库的位置

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

brew安装gcc

然后在终端中键入
gcc
,并点击tab按钮两次

您应该看到多个gcc版本,例如
gcc
gcc-10

然后找出哪一个是自制的,例如,在终端中键入
gcc-10--version
,输出如下内容:

<代码> GCC-10(自制软件GCC 102.0S3).2.0版权(C)2020免费软件基金会,这是免费软件;有关复制条件,请参见源。没有担保;甚至不考虑适销性或特定用途的适用性。

最后使用该编译器编译您的文件,例如:


gcc-10-o task-fopenmp task.c

嗨,不,很遗憾它不起作用。与以前一样,出现了许多随机错误:错误:用户无法写入以下目录:/usr/local/bin/usr/local/include/usr/local/lib/usr/local/share/usr/local/share/info/usr/local/share/local/man/usr/local/share/man/man1/usr/local/share/man/man7如果我编写brew安装libomp@NicoBattelli你需要安装对/use/local及其内容的写入权限。@NicoBattelli
brew doctor
应该告诉您使用
brew
可能需要解决的问题。
brew install llvm libomp
`brew --prefix llvm`/bin/clang -L`brew --prefix`/lib -o task -fopenmp task.c