5

我在互联网上的任何地方都找不到这个问题。所以我的链接器错误是:架构 x86_64 的未定义符号:“_omp_get_thread_num()”

这是我的代码:

int nthreads;
int tid;
#pragma omp parallel private(tid)
{
    tid = omp_get_thread_num();
    if (tid == 0) 
    {
        nthreads = omp_get_num_threads();
        printf("number of threads: %d\n", nthreads);
    }
}
4

3 回答 3

5

看起来你忘了使用-fopenmp标志来告诉编译器你想使用 openmp,你的例子编译得很好,就像g++ test.cpp -fopenmp -o test在 mac osx lion 上一样

于 2012-09-19T18:50:40.793 回答
3

很难诊断出这样的问题。我猜链接器找不到库。将 libgomp 添加到您的链接器库。

您必须链接库才能获取对象。

这里的类似问题:

http://www.eclipse.org/forums/index.php/m/901477/

以及更多通过互联网。原因是没有链接库。

你可以通过添加:-fopenmp

在海湾合作委员会。

于 2012-09-19T18:43:05.833 回答
1

如果您使用的是 OSX,您应该执行以下步骤:

  1. brew install gcc
  2. brew install libomp
  3. g++-9 -fopenmp -o main main.cpp (而不是' 9'你应该写你的版本gcc
  4. 运行./main
于 2020-09-09T07:31:26.367 回答