Advertisement

代码UTF8之路1:如何在QT项目中关掉C4819的警告

阅读量:

近期已将项目的源码格式由GB2312转换为UTF8编码(不含BOM)。发现编译过程中产生了C4819警报提示:文件中的字符无法在当前编码方案下表示。建议将文件保存为Unicode编码版本以避免数据丢失问题。

即便程序不起作用

网上有很多文章,
但都是类似的,
都是关于配置VC项目的属性,
或者调整文件保存格式;
此外,在源代码中添加#pragma指令,
又或者是更换文件换行符之类的方法,
但对于我的需求都不奏效

  1. 我们使用QtCreator作为开发环境工具,并非没有任何一种说法。
  2. 为了避免跨平台开发时可能遇到的麻烦,并不希望再次处理文件编码格式问题。
  3. 由于项目包含大量文件内容,并不便于全部配置#pragma指令。

所以需要从Qt项目的源代码入手展开探索以寻求解决方案 因为最终将使用VC进行项目的开发 所有的构建指令(makefile)均源自于通过qmake程序自动生成的 Qt 项目文件(pro文件) 因此 项目源代码中应当存在配置相应的构建参数以避免此提示信息

最后的解决方案很简单,是在项目文件中加入以下的定义:

复制代码
    # disable C4819 warning
    QMAKE_CXXFLAGS_WARN_ON += -wd4819
    
    plain

通过进一步优化代码结构设计和调试流程的调整, 重新构建项目可以

全部评论 (0)

还没有任何评论哟~