c++ - GCC 4.8.2 中缺少 OpenMP 4 功能

标签 c++ gcc g++ openmp

编译以下代码:

#include <iostream>                                                             
#include <omp.h>                                                                

int main(int argc, char *argv[])                                                
{                                                                               
  std::cout << omp_get_default_device() << '\n';                                
  return 0;                                                                     
}

对于 GNU G++ 4.8.2,使用命令:

g++ -fopenmp test.cpp

导致以下错误消息:

test.cpp: In function ‘int main(int, char**)’:
test.cpp:6:39: error: ‘omp_get_default_device’ was not declared in this scope
std::cout << omp_get_default_device() << '\n';

我认为 omp_get_default_device 应该可以在并行区域之外调用是正确的吗?这是一个错误吗?

最佳答案

omp_get_default_device 似乎已添加到 OpenMP 4.0 中( here 是 3.1 规范,没有该功能)。 GCC 4.8 仅支持版本 3.1,但 GCC 4.9 将支持 4.0:http://gcc.gnu.org/wiki/openmp

关于c++ - GCC 4.8.2 中缺少 OpenMP 4 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19506299/

相关文章:

linux - 为什么我没有从 g++ 中收到 "Multiple definition"错误?

c++ - 模板子类指针问题

c++ - 使用 C++ 和标准 C 库以异步方式实现套接字连接读取超时处理的最佳方法

gcc - 如何在 FreeBSD 上安装 g++?

c++ - 错误代码 : no matching function for call to

c++ - 在 Mingw 64 位上使用 Clang

在Ubuntu上编译动态链接库并获得无法识别的调试输出级别

c++ - 使用 -O3 或 -Ofast 来编译基准代码是否现实,或者它会删除代码吗?

c++ - 寻找惯用的方式来连接对象的字符串表示

c++ - 写入文件的问题