0

我有一个 DLL 项目,它可以编译、链接并与 Visual Studio 6 一起正常工作。

现在我已将它加载到 Visual Studio 2010。在导入旧的 .dsp 文件期间,VS2010 要求我转换为 .vcxproj 文件。之后,我尝试编译新转换的项目,但在调试构建中偶然发现了这个奇怪的链接器错误:

error LNK2019: unresolved external symbol __imp___CrtDbgReportW referenced in function "public: struct oapc_bin_head * const & __thiscall std::_Deque_const_iterator<struct oapc_bin_head *,class std::allocator<struct oapc_bin_head *> >::operator*(void)const " (??D?$_Deque_const_iterator@PAUoapc_bin_head@@V?$allocator@PAUoapc_bin_head@@@std@@@std@@QBEABQAUoapc_bin_head@@XZ)

_DEBUG 编译开关在调试模式下定义,NDEBUG 在发布模式下定义。令人惊讶的是,在发布模式下,错误完全不同:

error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl std::_Xlength_error(char const *)" (__imp_?_Xlength_error@std@@YAXPBD@Z) referenced in function "protected: void __thiscall std::deque<struct oapc_bin_head *,class std::allocator<struct oapc_bin_head *> >::_Xlen(void)const " (?_Xlen@?$deque@PAUoapc_bin_head@@V?$allocator@PAUoapc_bin_head@@@std@@@std@@IBEXXZ)

任何想法在项目文件转换过程中丢失了什么?

谢谢!

4

1 回答 1

0

看起来您在链接到 std dll 时遇到了某种问题。它可以类似于在 x64 中构建两者中的一个,在 x86 中构建另一个,只是不将 dll 添加到您的链接或类似的东西。

您可以发布 Visual Studio 使用的链接器命令吗?

于 2013-06-24T08:24:06.487 回答