編譯期間調試“未定義符號___gxx_personality_v0”錯誤
問題:
構建C 時使用命令列編寫程式碼時,遇到未定義符號錯誤:
$ gcc test.cpp Undefined symbols: "___gxx_personality_v0", referenced from:
儘管程式碼很簡單,但在沒有解釋的情況下無法編譯。
解釋:
發生該錯誤是因為程式碼是使用 C 語言編譯器 gcc 編譯的,而不是 C 編譯器 g 。符號 ___gxx_personality_v0 是特定於 C 標準函式庫 (libstdc ) 的符號,而且它不存在於 C 標準函式庫 (libc) 中。
解:
有兩種解決方案可以解決此問題:
使用g :
由於程式碼是用C 寫的,因此應該使用g 編譯,其中包括C 編譯器和C 標準函式庫。請改用此指令:
$ g++ test.cpp
新增C 標準函式庫:
如果需要使用gcc,可以新增C通過將-lstdc標誌加入到命令列來實現標準庫。此標誌指示連結器包含 libstdc 庫,其中包含必要的符號。請改用此指令:
$ gcc test.cpp -lstdc++
注意:
使用g 是首選方法,因為它可以無縫處理C 和C代碼。透過為您所使用的語言選擇正確的編譯器,您可以防止此類錯誤並確保編譯成功。
以上是為什麼我在編譯期間收到「未定義符號 ___gxx_personality_v0」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!