OpenMP Mac OSX Lion c ++链接器错误架构x86_64的未定义符号:“_ comp_get_thread_num”

时间:2012-09-19 18:40:57

标签: c++ osx-lion openmp

我无法在互联网上的任何地方找到这个问题。 所以我的链接器错误是:架构x86_64的未定义符号:“_ comp_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);
    }
}

3 个答案:

答案 0 :(得分:5)

看起来你忘了使用-fopenmp标志告诉编译器你要使用openmp,你的例子在mac osx lion上编译为g++ test.cpp -fopenmp -o test

答案 1 :(得分:3)

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

你必须链接库,才能获得对象。

这里的模拟问题:

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

以及更多的互联网。原因不是链接库。

您可以通过添加:-fopenmp

来实现 在GCC中

答案 2 :(得分:0)

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

  1. 酿造gcc
  2. 酿造libomp
  3. g ++-9 -fopenmp main.cpp (而不是'9',您应该编写您的gcc版本)