2014-11-20 30 views
0

所以我想学习如何在OSX Yosemite上使用openMP,但是股票gcc似乎不支持openMP,所以我从自制软件安装了gcc 4.9。当我尝试使用这个命令编译下面的代码时出现问题:GCC-4.9的main.cpp -fopenmp -o程序使用openMP库运行C代码时出错

#include <omp.h> 
#include <stdio.h> 
int main() { 
    #pragma omp parallel 
    printf("Hello from thread %d, nthreads %d\n", omp_get_thread_num(), omp_get_num_threads()); 
} 

我得到以下错误:

Undefined symbols for architecture x86_64: 
    "___gxx_personality_v0", referenced from: 
     Dwarf Exception Unwind Info (__eh_frame) in cccRGd8K.o 
ld: symbol(s) not found for architecture x86_64 
collect2: error: ld returned 1 exit status 

什么任何想法它的意思是?

+0

它跟OpenMP没有关系;看到http://stackoverflow.com/questions/203548/undefined-symbol-gxx-personality-v0-on-link – damienfrancois 2014-11-20 20:58:48

回答

2

您正在将C++程序传递给gcc-4.9。编译:

g++-4.9 main.cpp -fopenmp -o program 

你的程序看起来像C程序。所以我建议你把它改名为`main.c,你可以用gcc编译:

gcc-4.9 main.c -fopenmp -o program 
+0

非常感谢,它编译没有任何错误! – Loumiakas 2014-11-20 20:58:42