错误LNK2019使用VS2008静态库与VS2005在同一模式/ MDd

时间:2011-03-28 11:59:06

标签: c++ visual-studio-2008 visual-studio-2005

我使用的是使用Visual Studio 2008生成的FlashToDirectX.lib,我的项目是在Visual Studio 2005中。

我的项目选项:

/Od /I "e:\WORK\WORK\Project\MagicCamera\MixCenter\\..\Common" /I 
"C:\boost_1_45_0" /I "D:\lib\glog-0.3.1\src\windows" /I "E:\SDK\tinyxml" /I   
"E:\WORK\WORK\Project\MagicCamera\Include\flash" /D "WIN32" /D "_WINDOWS" /D "_USRDLL" /D 
"_DEBUG" /D "_WINDLL" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Yu"stdafx.h"   /Fp"Debug\MixCenter.pch" /Fo"Debug\\" 
/Fd"Debug\vc80.pdb" /W4 /nologo /c /Zi /TP /errorReport:prompt

FlashToDirectX选项:

/Od /I "..\Include" /D "WIN32" /D "_DEBUG" /D "_LIB" /D "_UNICODE" /D "UNICODE" /Gm
/EHsc /RTC1 /MDd /Yu"stdafx.h" /Fp"..\..\Temp\Flash-to-DrectX_FlashDX_Win32\Debug\FlashDXDebug_Win32.pch" /Fo"..\..\Temp\Flash-to-
DirectX_FlashDX_Win32\Debug\\" /Fd"..\Lib\FlashDXDebug_Win32.pdb" /W3 /WX /nologo /c 
/Zi /TP /errorReport:prompt
  

错误讯息:

1>FlashDXDebug_Win32.lib(FlashDXPlayer.obj) : error LNK2019:  unresolved external symbol  "__declspec(dllimport) public: void __thiscall std::_Container_base_secure::_Orphan_all(void)const " (__imp_?_Orphan_all@_Container_base_secure@std@@QBEXXZ),referenced in function "protected: void __thiscall std::vector<struct tagRECT,class std::allocator<struct tagRECT> >::_Tidy(void)" (?_Tidy@?$vector@UtagRECT@@V?$allocator@UtagRECT@@@std@@@std@@IAEXXZ) 
1>FlashDXDebug_Win32.lib(FlashDXPlayer.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base_secure::~_Container_base_secure(void)" (__imp_??1_Container_base_secure@std@@QAE@XZ),referenced in function "protected: __thiscall std::_Container_base_aux_alloc_empty<class std::allocator<struct tagRECT> >::~_Container_base_aux_alloc_empty<class std::allocator<struct tagRECT> >(void)" (??1?$_Container_base_aux_alloc_empty@V?$allocator@UtagRECT@@@std@@@std@@IAE@XZ) 
1>FlashDXDebug_Win32.lib(FlashDXPlayer.obj) : error LNK2019:  unresolved external symbol"__declspec(dllimport) public: __thiscall std::_Container_base_secure::_Container_base_secure(void)" (__imp_??0_Container_base_secure@std@@QAE@XZ),referenced in function "protected: __thiscall std::_Container_base_aux_alloc_empty<class std::allocator<struct tagRECT> >::_Container_base_aux_alloc_empty<class std::allocator<struct tagRECT> >(class std::allocator<struct tagRECT>)" (??0?$_Container_base_aux_alloc_empty@V?$allocator@UtagRECT@@@std@@@std@@IAE@V?$allocator@UtagRECT@@@1@@Z) 

我想问题是我使用的是不同的CRT库,或者是不同的.Net版本的兼容性 我尝试将FlashToDX.lib更改为动态库,并将/ MDd更改为/ Mtd。但我得到了类似的错误。我是初学者来处理这种链接错误。任何回复都会有所帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我使用杰出的工具ProjectConverter将lib解决方案转换为VS2005。问题解决了。