Code::Blocks、ld.exe 错误 "Cannot find -lgomp"

Code::Blocks, ld.exe error "Cannot find -lgomp"

我正在尝试学习如何使用 openMP,但在使用 Code::Blocks 时我总是遇到错误。

我按照推荐安装了MinGW版本,编译器设置如下。

设置 -> 编译器 -> 编译器设置 -> 其他选项,添加 -fopenmp.

然后在Linker settings -> Other linker options added -lgomp.

尝试构建程序时,我收到消息

ld.exe||cannot find -lgomp|

ld.exe||cannot find -lgomp| ||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

我正在使用 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);
    }

  }

}

我尝试了网上发布的许多解决方案,但似乎没有任何效果。我究竟做错了什么? 提前谢谢你。

我不确定 MinGW,但至少对于常规 GCC,它会在您使用 -fopenmp 时自动将 -lgomp 包含到 link 标志中。因此,请尝试不添加 -lgomp。如果这不起作用,另一种选择是添加 -Lpath 其中 path 是 libgomp 库的位置(通常在库中对于编译器本身)。