collect2.exe:错误:ld返回了1个退出状态 解决方法
环境:VS Code + MinGW + C语言
遇到的问题:采用预处理+编译+汇编+链接四步走的方式进行,在链接.o到可执行文件时,出现collect2.exe: error: ld returned 1 exit status 错误
请注意汇编命令为:
gcc -c test.s -o test.o
如果把 -c 的 c 大写为 -C,则这步虽然没有问题,但是进入链接步骤时,就会出现以上错误。
因此完整的步骤为:(假设你写的c文件名为test.c)
1 预处理
gcc -E test.c -o test.i
2 编译
gcc -S test.i -o test.s
3 汇编
gcc -c test.s -o test.o //一定要注意此处的-c的c为小写,前面两步-E和-S都为大写!!!
4 链接
gcc test.c -o test
这样最终可以生成test.exe文件,使用命令
./test.exe
即可运行。
当然,如果不是使用四步走进行编译链接,则可以直接使用命令:
gcc test.c -o test
即可直接一步编译链接完成,生成test.exe。