首页 >后端开发 >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