首頁 > 後端開發 > C++ > 為什麼我在編譯期間收到「未定義符號 ___gxx_personality_v0」錯誤?

為什麼我在編譯期間收到「未定義符號 ___gxx_personality_v0」錯誤?

Mary-Kate Olsen
發布: 2024-11-15 17:48:02
原創
1018 人瀏覽過

Why am I getting an

編譯期間調試“未定義符號___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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板