VS10下的openmp语法错误

时间:2012-06-05 10:27:59

标签: c++ visual-studio-2010 openmp

我正在尝试在Visual Studio 10下使用简单的#pragma omp parallel for,我收到一个我不明白的错误

这就是我的所作所为:

#pragma omp parallel for
for (int i(0); i < size; ++i)
{
// do some stuff
}

我在编译时遇到这些错误:

error C2059: syntax error : 'constant' // on the for() line
error C2059: syntax error : ';'  // on the for() line
error C2143: syntax error : missing ';' before '{'
// repeat previous error for every { or } in file
fatal error C1004: unexpected end-of-file found  // on last line of file

在编译器选项中激活openmp支持。此代码编译并运行完美,没有openmp指令。

我试图将for循环嵌套在这样的大括号中:

#pragma omp parallel for
{
for (int i(0); i < size; ++i)
{
// do some stuff
}
}

然后编译器告诉我他希望在#pragma指令之后有一个for循环。

有谁看到我在这里做错了什么?它让我疯狂,因为我已经在其他程序的相同条件下成功使用了OpenMP。

1 个答案:

答案 0 :(得分:1)

当OpenMP处于活动状态时,我不认为for循环控制块内支持对象样式初始化器。您应该将代码重写为:

for (int i = 0; i < size; ++i)

在第二种情况下,错误是由于omp for需要紧跟for循环而不是代码块。