【问题标题】:openmp syntax error under VS10VS10下openmp语法错误
【发布时间】:2012-06-05 10:27:58
【问题描述】:

我正在尝试在 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。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-21
      • 2018-10-16
      • 2021-05-05
      • 2012-01-24
      相关资源
      最近更新 更多