c++ - 目标文件不包含应该存在的符号

标签 c++ com

这是我遇到的具体错误:

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/

相关文章:

c++ - C++ 中的 qsort 用于字符串数组?

c++ - cudaStreamSynchronize 之后的任何 CUDA 操作都会阻塞,直到所有流都完成

C# COMException 读取 MSWord Shape 对象 Microsoft.Office.Interop.Word 的属性

javascript - 在 Firefox 或 Chrome 中运行 COM 对象

c++ - 将 VARIANT 转换为字节,反之亦然?

c++ - 如何关闭使用 SHCreateStreamOnFile 打开的文件句柄

windows - 如何将regcap用于64位DLL文件

c++ - Linux乐观malloc : will new always throw when out of memory?

c++ - 如何在C++中访问作用域的变量输出?

c++ - MongoC++驱动程序BSON的构建:基于流与基于字符串解析。哪一个性能更好?