【问题标题】:compilation error while using open mp [duplicate]使用 open mp 时出现编译错误 [重复]
【发布时间】:2016-07-14 13:27:21
【问题描述】:

我正在尝试在我的项目中开始使用 open mp。 我有这样的代码:

#pragma omp for
for (i = 0; i < 16; i++) {
    resBuf[i] = buf1[i] ^ buf2[i];
}

我在文件的开头包含了&lt;omp.h.&gt;。 我还尝试在 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'

你能帮帮我吗?

【问题讨论】:

  • -fopenmp编译。

标签: c++ c makefile openmp


【解决方案1】:

只需在 gcc 命令行上使用 -fopenmp 即可:https://www.dartmouth.edu/~rc/classes/intro_openmp

我猜你的项目有单独的编译和链接步骤,链接命令行中缺少 -fopenmp。如果您的 makefile 没有 LDFLAGS 行,请尝试添加行 LDFLAGS=-fopenmp,或者将 -fopenmp 添加到该行。

【讨论】:

  • 你说得对,我实际上忘记将 -fopenmp 标志也给链接器。现在它工作正常。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-19
  • 1970-01-01
  • 1970-01-01
  • 2013-06-16
  • 2013-10-28
相关资源
最近更新 更多