This question already has answers here:
Undefined reference to `omp_get_max_threads_'

(3个答案)


4年前关闭。




我正在尝试在项目中开始使用open mp。
我有这样的代码:
#pragma omp for
for (i = 0; i < 16; i++) {
    resBuf[i] = buf1[i] ^ buf2[i];
}

我在文件的开头包含了<omp.h.>
我也尝试在makefile中使用不同的标志及其组合:
FLAGS = -Wall -g -fopenmp -lgomp -fgomp
CC = gcc

仍然不起作用。有以下问题:
undefined reference to `omp_get_num_threads'
undefined reference to `omp_get_thread_num'
undefined reference to `GOMP_barrier'

你能帮助我吗?

最佳答案

在gcc命令行上只有-fopenmp应该可以:https://www.dartmouth.edu/~rc/classes/intro_openmp

我猜您的项目有单独的编译和链接步骤,并且链接命令行中缺少-fopenmp。如果您的makefile没有LDFLAGS行,请尝试添加行LDFLAGS = -fopenmp,否则,请在该行中添加-fopenmp。

10-07 15:21