首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >omp.h未找到,OS X Yosemite不使用最新gcc版本

omp.h未找到,OS X Yosemite不使用最新gcc版本
EN

Stack Overflow用户
提问于 2015-02-16 16:45:11
回答 4查看 13.5K关注 0票数 2

我试图在上构建GraphChi,但得到了以下错误:

fatal error: 'omp.h' file not found

从这个问题-- How to include omp.h in OS X? --我了解到约塞米蒂使用的是Clang而不是gcc,后者不包括omp.h。

代码语言:javascript
复制
$ which gcc
/usr/bin/gcc
$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix

接下来,我通过家庭酿造安装了gcc

代码语言:javascript
复制
$ brew info gcc
gcc: stable 4.9.2 (bottled)
http://gcc.gnu.org
/usr/local/Cellar/gcc/4.9.2_1 (1092 files, 177M)
Built from source with: --without-multilib

并更新了$PATH以包括通往gcc新版本的路径。

代码语言:javascript
复制
$ echo $PATH
/usr/local/Cellar/gcc/4.9.2_1:usr/local/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin

但是,gcc -vwhich gcc仍然指向旧版本,由于缺少omp.h文件,构建GraphChi仍然无法工作

有人知道我还需要做什么吗?

更新

locate omp.h返回:

代码语言:javascript
复制
/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/lib/gcc/i686-apple-darwin11/4.2.1/include/omp.h
/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.1.0/4.9.2/include/omp.h
/usr/local/Cellar/gfortran/4.8.2/gfortran/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2/include/omp.h

我的~/.profile

代码语言:javascript
复制
export PATH=/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.1.0/4.9.2/include:/usr/local/Cellar/gcc/4.9.2_1/bin:usr/local/bin:/opt/local/bin:/opt/local/sbin:$PATH
EN

回答 4

Stack Overflow用户

发布于 2015-06-13 18:32:23

我通过使用国产软件安装gcc解决了这个问题:

代码语言:javascript
复制
brew install gcc --without-multilib

,然后用

代码语言:javascript
复制
CC=gcc-5 CXX=g++-5 cmake ..
CC=gcc-5 CXX=g++-5 make -j7
票数 3
EN

Stack Overflow用户

发布于 2015-02-16 23:03:25

一旦你安装了gcc-4.9与自制,它将自动在您的道路上。要使用OpenMP,只需确保使用新安装的gcc-4.9,它将能够找到omp.h。

对于GraphChi,您必须将Makefile的第3行更改为gcc-4.9。从此以后,跑步就可以了。他们在自述中描述了这一点,但至少他们描述的版本已经过时了https://github.com/GraphChi/graphchi-cpp#problems-compiling-on-mac

票数 1
EN

Stack Overflow用户

发布于 2015-02-16 17:39:34

clang还不支持OpenMP。此外,默认情况下,gcc链接到苹果的LLVM编译器(而不是安装自brew的GCC )。相反,gcc-4.9会链接到GCC。我认为如果指定了-fopenmp,就会自动包含omp.h

可以手动构建带有OpenMP支持的clang版本,请参阅http://clang-omp.github.io

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28546288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档