error LNK2001: 无法解析的外部符号

时间:2022-05-17 10:42:35

1.错误描述

error LNK2001: 无法解析的外部符号 "__declspec(dllimport) void __cdecl PadSystem::Private::printQString(class std::basic_ostream<wchar_t,struct std::char_traits<wchar_t> > &,class QString const &,bool)" (__imp_?printQString@Private@PadSystem@@YAXAAV?$basic_ostream@_WU?$char_traits@_W@std@@@std@@ABVQString@@_N@Z)

2.分析

工程属性配置问题 。

   char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。
   wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位,
   总之,wchar_t所能表示的字符数远超char型。

3.解决办法

属性 -> C,C++ -> 语言 -> 将WChar_t视为内置类型, 设置为:否(/Zc:wchar_t-)。