【发布时间】:2015-07-23 02:28:03
【问题描述】:
我可以使用构建我的项目
#include "/usr/local/Cellar/libiomp/20150401/include/libiomp/omp.h"
还有set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fopenmp")在 CMakeLists.txt 中
但是我应该怎么处理#include <omp.h>?
当我brew list 时,我安装了clang-omp、libivmp、gcc。我通过使用 locate omp.h 找到了 omp.h。
还有我的gcc -v 打印:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin14.4.0/5.1.0/lto-wrapper
Target: x86_64-apple-darwin14.4.0
Configured with: ../gcc-5.1.0/configure --enable-languages=c++,fortran
Thread model: posix
gcc version 5.1.0 (GCC)
提前致谢。
【问题讨论】:
-
GCC 带有自己的 OpenMP 实现 (libgomp),并且在指定
-fopenmp时会自动添加其omp.h的路径。据我所知,您希望链接到英特尔 OpenMP 运行时,该运行时提供与 libgomp API 的兼容层。您应该能够在 编译时 简单地使用-fopenmp和#include <omp.h>然后链接到 IOMP 没有-fopenmp标志(如果 GCC 也用作链接器)。
标签: c++ macos gcc cmake openmp