0

我正在尝试#pragma omp parallel for在 Visual Studio 10 下使用简单的,但出现我不明白的错误

这就是我所做的:

#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。

4

1 回答 1

1

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

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

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

于 2012-06-05T11:36:47.630 回答