获得;collect2:错误:ld返回1退出状态“;

获得;collect2:错误:ld返回1退出状态“;,c,multithreading,parallel-processing,openmp,C,Multithreading,Parallel Processing,Openmp,我在尝试运行几乎所有代码时都会看到此错误消息 不知道为什么 collect2: error: ld returned 1 exit status 例如,当我运行这个简单的代码时 #include <stdio.h> #include <omp.h> int main() { printf ("Hello, world:"); #pragma omp parallel printf (" %d", o

我在尝试运行几乎所有代码时都会看到此错误消息 不知道为什么

 collect2: error: ld returned 1 exit status
例如,当我运行这个简单的代码时

#include <stdio.h> 
#include <omp.h> 

int main() { 

  printf ("Hello, world:"); 
  #pragma omp parallel 
    printf (" %d", omp_get_thread_num ()); 
  printf ("\n"); 
  return 0; 
}
#包括
#包括
int main(){
printf(“你好,世界:”);
#pragma-omp并行
printf(“%d”,omp_get_thread_num());
printf(“\n”);
返回0;
}

尝试了其他简单代码,但没有任何效果

您需要使用标记
-fopenmp
编译代码。例如:

gcc -fopenmp -O3 -w -Wall -pedantic main.c
从中可以看出:

启用OpenMP

要激活C/C++和Fortran的OpenMP扩展 编译时标志-必须指定fopenmp。这将启用OpenMP 指令#在C/C++和中使用pragma omp$自由形式的omp指令, c$omp、*$omp和$固定格式的omp指令,!$有条件的 以自由形式和c$、*$和!$编译哨兵哨兵 Fortran的固定格式。该标志还安排自动链接 OpenMP运行时库(运行时库例程)的