我正在对 Apache ActiveMQ CMS 库进行一些更改(一个潜在的错误修复)。我已经修复了这个错误并在调试模式下对其进行了测试。现在我想让它的发布 dll 添加到我的项目中。当我尝试使用 Release-DLL 配置构建时,出现以下错误:
DiscoveryTransport.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall activemq::util::Suspendable::~Suspendable(void)" (??1Suspendable@util@activemq@@UAE@XZ)
.lib 和 .exp 文件正在成功创建。请注意以下发现:
- 它在调试(静态库)和发布(静态库)配置中编译得很好
请考虑以下配置:
平台工具集:
visual studio 2008 (v90)
[我的构建需要]配置类型:
Dynamic Library (.dll)
整个程序优化:
Use Link Time Code Generation
*尝试No Whole Program Optimization
但没有运气字符集:
Not Set
*根据调试和发布配置C/C++ >> 常规 >> 调试信息格式:
Program Database (/Zi)
C/C++ >> 优化:
Maximize Speed (/O2)
C/C++ >> 代码生成 >> 运行时库:
Multi-threaded DLL (/MD)
*尝试使用 (/MDd) 但没有运气C/C++ >> 预编译头文件:
Not using precompiled headers
C/C++ >> 高级 >> 调用约定:
__cdecl (/Gd)
链接器 >> 输入:添加
libapr-1.lib
,因为它依赖于 Apache 运行时链接器>>调试>>生成调试信息:
Yes (/DEBUG)
链接器>>系统>>子系统:
Windows (/SUBSYSTEM:WINDOWS)
链接器>>高级>>目标机器:
MachineX86 (/MACHINE:X86)
链接器>>高级>>错误报告:
PromptImmediately (/ERRORREPORT:PROMPT)
在调试和发布配置中使用的包含路径和库是正确的
我正在使用 Visual Studio 2010 速成版
DiscoveryTransport
我更改的代码与类无关。这两天我一直在尝试。任何帮助/建议将不胜感激。
问候