我正在尝试使用 OpenMP 在 Visual Studio 2005 Professional 中创建并行 for 循环。我已经包含了 omp.h 并指定了 /openmp 编译器标志。但是,我什至无法编译最简单的并行 for 循环。
#pragma omp parallel for
for ( int i = 0; i < 10; ++i )
{
int a = i + i;
}
以上在#pragma 行产生编译器错误C3005。
谷歌并没有太多帮助。我只发现一个不起眼的日本网站,其中一位用户有类似的问题。没有提到决议。
一个标准的并行块编译得很好。
#prgram omp parallel
{
// Do some stuff
}
直到您尝试添加一个 for 循环。
#pragma omp parallel
{
#pragma omp for
for ( int i = 0; i < 10; ++i )
{
int a = i + i;
}
}
以上导致编译器错误 C3001。'for' 似乎让编译器感到困惑,但它不应该如此。有任何想法吗?