c++ - 没有 "referenced in"字段的未解析外部符号

标签 c++ linker-errors extern

因此,通常当您看到未解析的外部符号错误时,链接器至少会告诉您引用在哪个函数中,即

未解析的外部符号“class1::function1”**在函数“class2::function2”中引用**

但是当你只得到前半部分时你会怎么做?即

未解析的外部符号“class1::function1”

我知道“class1::function1”的定义位置,但我故意不包括它。因此,仅包括包含定义的文件将无济于事。 include 以及对文件中包含的符号的所有引用都被 ifdef 输出。我需要的是找到对这个故意未包含的符号的引用的方法,以便我可以摆脱它。搜索符号名称只会显示我已经 ifdef 输出的内容。

最佳答案

如果它是一个虚函数,那么它从 vtable 中引用,vtable 又从每个构造函数(或每个构造函数内联的地方)引用。

如果您正在使用该类的实例,我认为最好的办法是删除 virtual 关键字。否则,您必须提供一个定义,即使只是一个 stub 。

(语言标准通过考虑始终使用的任何虚函数来处理此问题,因此需要定义。)

关于c++ - 没有 "referenced in"字段的未解析外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20846971/

相关文章:

c++ - QByteArray 的标准替代品

android - Android NDK 中的链接器错误(对 `__cxa_end_cleanup' 的 undefined reference )

C 编程 - "Undefined symbol referenced in file"

c++ - 在不同文件中使用相同的变量(使用 extern)

c++ - 无法从另一个项目链接一个项目的头文件和 cpp 文件 LNK2019 : unresolved external symbol error

c++ - extern const,哪个是声明,哪个是前向声明

c++ - 保护输入和输出文件描述符时出错

c++ - 在 C++ 中合并两个 PDF 文件

c++ - 立即在不同的线程上通过 IP 发送

c++ - 6 "error LNK2019: unresolved external symbol"