1

我正在对 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我更改的代码与类无关。这两天我一直在尝试。任何帮助/建议将不胜感激。

问候

4

0 回答 0