这是我遇到的具体错误:
libFoo.so: undefined reference to `IID_IFOOBAR'
collect2: ld returned 1 exit status
make: *** [/home/F.exe] Error 1
当我尝试检查目标文件 A.o 中的符号时
nm A.obj | grep IID_
我的“IID_IFOOBAR”目标文件中没有列出任何符号,因为它在头文件中定义为:
extern const blahType IID_IFOOBAR
我错过了什么吗? IID_IFOOBAR 是一个外部变量,是否应该在某处进行不同的定义?如果这个问题太具体,我会删除它。但也许有人的直觉会在这里帮助我。
最佳答案
[编辑]
在某处添加变量的定义(没有 extern
)。没有初始值设定项的外部标识符不是定义 - 定义必须在其他地方。
关于c++ - 目标文件不包含应该存在的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1506456/