c - 获取“collect2:错误:ld 返回 1 个退出状态”
问题描述
当我尝试运行几乎所有代码无法弄清楚原因时,我看到了此错误消息
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;
}
尝试了其他简单的代码,但没有任何效果
解决方案
您需要使用 flag 编译代码-fopenmp
。例如:
gcc -fopenmp -O3 -w -Wall -pedantic main.c
从源代码可以阅读:
启用 OpenMP
要激活 C/C++ 和 Fortran 的 OpenMP 扩展,必须指定编译时标志 -fopenmp。这将启用 C/C++ 中的 OpenMP 指令 #pragma omp 和自由格式的 !$omp 指令,固定格式的 c$omp、*$omp 和 !$omp 指令,自由格式的 !$ 条件编译标记和 c$、* $ 和 !$ 固定形式的标记,用于 Fortran。该标志还安排 OpenMP 运行时库(运行时库例程)的自动链接。
推荐阅读
- javascript - Web:如何重定向到填充信息的 CodePen 或 JsFiddle?
- linux - 如何使用从 Dymola 导出的源代码 FMU 为 Linux 64 位生成二进制文件。(交叉编译Windows到Linux)
- c# - 仅返回指定目录中的重复文件
- python-3.x - Heroku Discord Bot 构建但在部署时无法工作
- powershell - Sharepoint Net Webclient通过powershell输出检索总是HTML
- python - API Call Statistics Sweden SCB, No values displayed
- java - Micronaut FunctionInitializer 覆盖应用程序属性
- maxima - 如何检测 Maxima 中的内置函数?
- python - Monkey 修补 Python 中另一个模块的对象
- amazon-web-services - AWS ELB - 目标群体健康但无法访问