我正在编译一个简单的 C++ 文件Temp.cpp
:
#include <string>
int main() { std::wstring s; }
使用命令行:
cl.exe /MD /Iinc\api\crt\stl60 /Iinc\crt /Iinc\api C:\Temp.cpp
/LibPath:lib\wxp\i386 /LibPath:lib\crt\i386
/link /LibPath:lib\wxp\i386 /LibPath:lib\crt\i386
在 WDK 7.1 Windows XP 免费构建环境中。
我收到类似(LNK2019)的链接错误:
unresolved external symbol "__declspec(dllimport) public: __thiscall
std::basic_string<wchar_t,struct std::char_traits<wchar_t>,
class std::allocator<wchar_t> >::~basic_string<wchar_t,
struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(void)"
(__imp_??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator
@_W@2@@std@@QAE@XZ) referenced in function _main
如果我使用string
而不是wstring
,它可以工作。
问题的原因是什么?如何wchar_t
在我的源文件中使用 -based 类型?