编译以下代码:
#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
应该可以在并行区域之外调用?这是一个错误吗?
答案 0 :(得分:5)
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