使用open mp时发生编译错误

compilation error while using open mp

本文关键字:编译 错误 open mp 使用      更新时间:2023-10-16

我正试图在我的项目中开始使用openmp。我有这样的代码:

#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。如果生成文件没有LDFLAGS行,请尝试添加行LDFLAGS=-fopenmp,或者在该行中添加-fopenmp。