首页 > 解决方案 > 在 macOS catalina 2 上运行 openMP 代码时出错

问题描述

我刚刚安装了 openMP 刚刚运行

  • 酿造安装 gcc

然后我使用编译我的代码

  • gcc-10 -o 任务 -fopenmp 任务.c

但是我收到了错误消息:

架构 x86_64 的未定义符号:“_main”,引用自:主要可执行文件 ld 的隐式入口/开始:未找到架构 x86_64 collect2 的符号:错误:ld 返回 1 退出状态

我的代码是:

1. #include <omp.h>
2. #include <iostream>
3. using namespace std; 
4.
5. #define TAMA_NTHREADS 4
6.
7.
8. int main (int argc, const char * argv[]){
9.
10.    
11.   int nProcessors = omp_get_max_threads();
12.
13.   cout<<"Numero di core disponibili: " << nProcessors << endl;
14.
15.   omp_set_num_threads(nProcessors);
16.
17.   cout << "Numero thread fuori pragma: " << omp_get_num_threads() << endl;
18.
19.   #pragma omp parallel
20.      {
21.         cout << endl <<"Numero di thread in pragma: " << omp_get_num_threads() << endl;
22.         cout << "Sono il thread numero: " << omp_get_thread_num(); 
23.         cout << " E ti saluto! " << endl; 
24.      }
25.   
26.   exit(0);
27.}

有人可以帮我吗?

标签: openmpmacos-catalina

解决方案


“这是您尝试编译为 C 的 C++ 代码。将文件重命名为 task.cc 并改用 g++-10”。Hirsto 这解决了问题,谢谢。无论如何,即使我不重命名文件,它也可以工作。


推荐阅读