首頁 >後端開發 >C++ >為什麼我的 C 專案中出現「對 'vtable for XXX' 的未定義參考」或「ClassName::ClassName()」連結器錯誤?

為什麼我的 C 專案中出現「對 'vtable for XXX' 的未定義參考」或「ClassName::ClassName()」連結器錯誤?

Linda Hamilton
Linda Hamilton原創
2024-12-03 00:04:14380瀏覽

Why Am I Getting

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn