在Release-DLL

时间:2016-09-15 08:31:55

标签: c++ visual-c++ linker release activemq-cpp

我正在对Apa​​che 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文件正在成功创建。请注意以下调查结果:

  • 它在Debug(静态lib)和Release(静态lib)配置
  • 中编译良好

请考虑以下配置:

  • 平台工具集: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 Runtime

  • 链接器>>调试>>生成调试信息:Yes (/DEBUG)

  • 链接器>>系统>>子系统:Windows (/SUBSYSTEM:WINDOWS)

  • 链接器>>高级>>目标机器:MachineX86 (/MACHINE:X86)

  • 链接器>>高级>>错误报告:PromptImmediately (/ERRORREPORT:PROMPT)

  • 包含和lib的路径在调试和发布配置中使用正确

  • 我使用的是Visual Studio 2010 Express Edition

我更改的代码与DiscoveryTransport类无关。两天以来我一直在尝试。任何帮助/建议将受到高度赞赏。

此致

0 个答案:

没有答案