为什么std :: basic_ifstream <char32_t>在MSCV17上抛出LNK2001错误,而std :: basic_ifstream <char>却没有?

时间:2018-09-16 06:25:07

标签: c++ visual-studio

我有一个简单的程序,如MSVS17中的下一个程序:

#include <fstream>
int main()
{
    std::basic_ifstream<char32_t> theIfstream("txt.txt");// char32_t
}

但是它把我扔了

  

TestBasic_xfstream_char32_t.obj:错误LNK2001:无法解析的外部符号“ __declspec(dllimport)public:static class std :: locale :: id std :: codecvt :: id”(__imp_?id @?$ codecvt @ _UDU_Mbstatet @@@ std @@ 2V0locale @ 2 @ A)

以及我编译时

#include <fstream>
int main()
{
    std::basic_ifstream<char> theIfstream("txt.txt"); //char
}

它可以正常编译。所以...

  

当我尝试在basic_ifstream或basic_ofstream上使用char16_t或char32_t时,为什么会出现该链接错误?

我在MinGW中都进行了测试,并且在MinGW中两个代码都可以正常编译,问题出在MSVS17中

有帮助吗?

注意:

我已经将链接器->输入->忽略所有默认库设置为“否”

0 个答案:

没有答案