警告#3180:无法识别的OpenMP #pragma检查了其他答案,但没有一个与我的问题相对应

问题描述

我的代码收到此警告。它仍然可以让我运行该程序,但是就性能而言,它就像是单线程的,因此我认为它忽略了我的编译指示。我正在使用以下标志进行编译: icc main.o print_output.o -O3 -fopenmp -o -programname

这是我代码中的编译指示:

#pragma omp parallel for private(waat)
for ( ...){
...
}

我也确保#include 也是如此。我还通过以下命令声明了线程数:

omp_set_dynamic(0);
omp_set_num_threads(4);

不确定为什么会出现此错误。任何帮助将不胜感激。

谢谢!

解决方法

我解决了我的问题!我的makefile中有一个错误。我在应用程序的对象行中包含-fopenmp,但未使用-fopenmp编译实际的main.c。谢谢所有回复的人!