GCC C 連結器錯誤:未定義引用'vtable for XXX'、'ClassName::ClassName()'
連結C 時在Eclipse-CDT 中的專案中,使用者可能會遇到連結器錯誤,例如「undefined reference to 'vtable for XXX'”或“對‘ClassName::ClassName()’的未定義引用”。這些錯誤指出了阻止成功庫連結的潛在問題。
1.確認靜態函式庫類型
要驗證靜態函式庫的64 位元性質,請在終端機中執行下列指令:
file /path/to/library.a | grep -i "64-bit"
如果「64 位元」存在於輸出,則庫是64 位元的。
2.庫類別和方法驗證
要檢查庫是否包含預期的類別和方法,請使用 ctags 或 lldb 等 C 頭文件檢視器工具。例如,在終端機中使用 ctags:
ctags -R /path/to/library_header_files_directory find /path/to/tags_file_directory NameOfClass
該指令在頭檔產生的標籤檔案中搜尋類別名,並指示庫中是否存在。
3。了解錯誤
在這種情況下,連結器錯誤表明「SomeOtherClass」類別中缺少重寫虛擬函數的定義。該聲明存在,但缺乏實施。要解決此問題,請為「SomeOtherClass」中缺少的方法提供定義。
以上是為什麼我的 C 專案中出現「對 'vtable for XXX' 的未定義參考」或「ClassName::ClassName()」連結器錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!