【发布时间】:2012-10-16 07:54:25
【问题描述】:
我已将 Xcode iOS 项目从 Xcode 3.2.6 迁移到 4.2。现在,当我尝试使用具有非 ASCII 字符的文字初始化 wchar_t 时,我收到了警告:
wchar_t c1;
if(c1 <= L'я') //That's Cyrillic "ya"
消息是:
MyFile.cpp:148:28:警告:字符 unicode 转义序列对其类型来说太长 [2] MyFile.cpp:148:28:警告:宽字符常量中的无关字符被忽略 [2]
并且文字没有按预期工作 - 比较失败。
我正在使用 -fshort-wchar 进行编译,源文件是 UTF-8 格式。 Xcode 编辑器可以正常显示文件。它在 GCC(包括 Xcode 3 在内的多种版本)上编译和工作,在 MSVC 上工作。有没有办法让 LLVM 编译器识别这些文字?如果没有,我可以在 Xcode 4 中回到 GCC 吗?
编辑:Snow Leopard 上的 Xcode 4.2 - 长话短说。
EDIT2:确认了一个全新的项目。文件扩展名无关紧要 - .m 文件中的行为相同。 -fshort-wchar 也不影响它。看来我必须回到 GCC,直到我可以升级到修复此问题的 Xcode 版本。
【问题讨论】:
-
这是 Xcode 4 的哪个版本?您的项目设置使用什么编译器?
-
This 看起来像相关的错误。
标签: c++ ios xcode4 llvm wchar-t