无论gcc还是g++都显示有以下段错误,无法成功链接
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
compilation terminated.
在stackoverflow中找到一个Q&A解决。特此记录
依次执行了以下命令后可以重新正常编译链接。
- sudo apt purge binutils
- sudo apt remove make
- sudo apt autoremove
- sudo apt install build-essential
也就是说他把binutils
卸载了,然后重装了build-essential
binutils
提供了一系列用来创建、管理和维护二进制目标文件的工具程序,如汇编(as)、连接(ld)、静态库归档(ar)、反汇编(objdump)、elf结构分析工具(readelf)、无效调试信息和符号的工具(strip)等。通常,binutils与gcc是紧密相集成的,没有binutils的话,gcc是不能正常工作的。
build-essential
是Ubuntu提供的一个软件包, 安装了该软件包,编译c/c++所需要的软件包也都会被安装。
所以猜测是binutils
出现问题?