我已将 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 版本。