无法在Eclipse Neon中使用openmp pragma编译C ++

时间:2017-03-08 12:37:39

标签: c++ linux eclipse openmp

我尝试使用OpenMP pragma在Eclipse Neon 2中编译一个简单的C ++项目。

我已经安装了 libgomp1 包,并且发现/ -name gomp 提供了以下输出:

/usr/share/doc/gcc-5-base/gomp /usr/share/doc/libgomp1
/usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
/usr/lib/x86_64-linux-gnu/libgomp.so.1
/usr/lib/gcc/x86_64-linux-gnu/5/libgomp.a
/usr/lib/gcc/x86_64-linux-gnu/5/libgomp.so
/usr/lib/gcc/x86_64-linux-gnu/5/libgomp.spec

使用以下选项启动g ++:

 -std=c++0x -I/usr/local/include -I/usr/local/include/opencv -O0 -g3 -Wall -c -fmessage-length=0 -fopenmp

以下代码:

#pragma omp parallel for
    for (int i=0;i++;i<r){
(...)

在for循环行上生成此错误消息:

invalid controlling predicate
invalid increment expression

谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:1)

你在for-statement中的订单错了:

  1. 初始化
  2. 停止条件
  3. 增量
  4. 所以,你的循环应该是这样的

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

    这是错误消息告诉您的内容:

    &#34;无效的控制谓词&#34; =停止条件无效,因为在您的代码中,它是一个增量操作

    &#34;无效的增量表达式&#34; =增量无效,因为在您的代码中,这是一个条件。