我试图学习如何使用openMP,但在使用Code :: Blocks时我一直遇到错误。
我按照建议安装了MinGW版本,并将编译器设置如下。
设置 - >编译器 - >编译器设置 - >其他选项,添加了-fopenmp。
然后在链接器设置中 - >其他链接器选项添加了-lgomp。
在尝试构建程序时,我收到消息
ld.exe ||找不到-lgomp |
ld.exe ||找不到-lgomp | || ===构建失败:2个错误,0个警告(0分钟,0秒(秒))=== |
我正在使用GNU GCC编译器,我尝试运行的程序如下。
#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
int nthreads, tid;
#pragma omp parallel private(nthreads, tid)
{
tid = omp_get_thread_num();
printf("Hello World from thread = %d\n", tid);
if (tid == 0)
{
nthreads = omp_get_num_threads();
printf("Number of threads = %d\n", nthreads);
}
}
}
我尝试了许多在线发布的解决方案,但似乎没有任何效果。我究竟做错了什么? 提前谢谢。
答案 0 :(得分:3)
我不确定MinGW,但至少对于常规GCC,只要你使用-fopenmp,它就会自动将-lgomp包含在链接标志中。所以,尝试不添加-lgomp。如果这不起作用,另一种方法是添加-L path ,其中 path 是libgomp库的位置(通常在编译器本身的库中)。