無論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
出現問題?