我用Ubuntu 18.04和gcc 7.5.0。我有一个图书馆,它是用-fshort wchar编辑的。我注意到在库中使用std::wstring可能会导致分割错误。我发现了一个类似的topic。有一个解释:
如果您想使用
的正确(32位)定义与标准库或第三方库代码的任何部分交互,则wchar_t -fshort-wchar是不可用的。
我知道在用std::wstring编译库时不能使用-fshort-wchar,但是其他标准库内容如何呢?为什么我不能与标准库的任何部分交互,例如std::vector?
发布于 2020-05-14 15:05:47
-fshort-wchar sets the size of wchar_t to 2 bytes现在想想,如果您使用标准库的一部分,即,而不仅仅是头,将会发生什么。标准库的很大一部分被编译成您链接的库(libstdc++ / libc++)。在编译时,不使用-fshort-wchar,因此库中的wchar_t大小为4个字节。
https://stackoverflow.com/questions/61800559
复制相似问题