我尝试使用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
谁能告诉我我做错了什么?
答案 0 :(得分:1)
你在for-statement中的订单错了:
所以,你的循环应该是这样的
for( int i=0; i<r; i++ )
这是错误消息告诉您的内容:
&#34;无效的控制谓词&#34; =停止条件无效,因为在您的代码中,它是一个增量操作
&#34;无效的增量表达式&#34; =增量无效,因为在您的代码中,这是一个条件。