如何让OpenMP在Mac OSX 10.11上运行,以便我可以通过终端执行脚本?
我已安装OpenMP:brew install clang-omp
.
比如我跑步的时候:gcc -fopenmp -o Parallel.b Parallel.c
则下列运算式会传回:fatal error: 'omp.h' file not found
我也试过:brew install gcc --without-multilib
,但不幸的是,这最终返回了以下内容(在首次安装一些依赖项之后):
The requested URL returned error: 404 Not Found
Error: Failed to download resource "mpfr--patch"
是否有任何建议的解决方法?
7条答案
按热度按时间exdqitrt1#
在Mac上,命令gcc是到Clang的符号链接。
您实际上使用的是Clang,而Clang到目前为止还没有内置OpenMP支持。
根据this post(在那里你也可以找到如何设置它的说明),Clang的新版本确实支持OpenMP。
另一方面,如果你仍然想使用gcc,我可以指导你完成对我有效的步骤。
1.**使用brew安装gcc。**您使用的命令应该可以正常工作:
或者,如果brew提示您已经安装了gcc,您可以尝试
您可能已经注意到,如果不指定
--without-multilib
,brew会警告您OpenMP可能无法工作。1.查找新安装的gcc的位置。
Brew将版本号附加到gcc,这样它就不会与命令行工具安装的版本号冲突。您可以在
usr/local/bin
中找到符号链接。在我的情况下
如果右键单击并选择**“Show original**”(显示原始文件**),则应显示
/usr/local/Cellar/gcc/5.3.0/bin/gcc-5
的gcc-5
可执行文件(版本号可能不同)。1.现在您需要将此消息告知系统:
调用编译器时,bash默认会查找
/usr/bin
,而不是/usr/local/bin
。您需要将此目录添加到**$PATH**中。这可以通过以下命令轻松完成:
1.现在,您应该能够使用以下命令在启用OpenMP的情况下进行编译:
备注:
gcc-5
是我安装的版本,您的版本可能不同。oyxsuwqo2#
并运行以下代码
xwbd5t1u3#
macOS高塞拉利昂版本10.13.6(17 G65)
1.安装gcc
brew reinstall gcc --without-multilib
2.编译
gcc-8 -Wall -fopenmp your-parallel-program.c
请注意gcc-8查看 * 版本 * brew安装,您的版本可能是 gcc-7 或 gcc-9
==> Pouring gcc-8.2.0.high_sierra.bottle.1.tar.gz 🍺 /usr/local/Cellar/gcc/8.2.0: 1,495 files, 344.8MB
就是这样!
w80xi6nr4#
默认情况下,愚者使用clang发行版。使用Homebrew安装愚者。安装后,您可以编译代码指定Homebrew安装的愚者版本并添加OpenMP标志。hello_world示例如下所示:
gcc:稳定10.2.0(瓶装),头
GNU编译器集合
1.导出OMP_NUM_THREADS=8
1.创建hello.c
1.执行:./hello
vxbzzdmp5#
1.使用brew安装gcc。
1.检查gcc是否已安装。
1.更改cmake cxx编译器。
也许这个能帮你。
ao218c7q6#
安装gcc后:
和导出PATH:
您可能需要导出CC,这对我很有效:
这可能是gcc-7,或者别的什么。
30byixjq7#