警告 warning: NUL charactor seen; rest of line ignored
将一个只用到标准库函数的 C 程序在 Windows 平台上用 VS 2010 编译,没有出任何问题。再将它放到 64 位 CentOS 6.8 下,用 GCC 编译它,接收到一大堆警告和错误报告,如下图:
其中大部分是“null character(s) ignored”警告,还有一些像stray '***' 这样的错误。经过调查发现,原因在于在 Windows 平台上用文本编辑器保存这个 C 程序时,因为在其中用中文写了一些注释,保存时 Visual Studio 2010 IDE 显示了以下警告:
warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
于是在文本编辑器中保存时,将编码设置为了 UNICODE,但是 GCC 编译器不能识别 UNICODE 编码格式的源文件,就会产生如上图所示的警告和错误。(注意: UNICODE 本身是一个很大的概念,包含 UTF-8、UTF-16、UTF32。但 Windows 平台上的 UNICODE 实质上是指 UTF-16 编码,Linux 平台上通常采用 UTF-8 编码。)
由于只是想让这个 C 程序在 CentOS 6.8 上能执行,并不需要在 Linux 下编辑它,而且中文字符仅在程序的注释中出现,所以最简单的解决方法就是在 Windows 平台上用文本编辑器(比如 Notepad、Notepad++ 等)将这个 C 程序的源文件转换成 ASCII 编码或 UTF-8 编码。从 Windows 7 开始,自带的记事本 Notepad 在“另存为”时都允许用户选择编码方式。如下图所示:
于是只需用记事本将原来的 C 程序另外保存一份,编码选择 ASNI 或 UTF-8 都可以,接下来将新保存的文件拿到 CentOS 6.8 下用 GCC 编译。此时程序就能顺利地被编译,GCC 不再报告警告和错误了。
Windows 下的 Visual Studio 能够很好地自动识别源程序的编码方式,经过实验后发现:通过使用 Notepad 程序,将上面的 C 程序文件以 ANSI、Unicode、Unicode big endian、UTF-8 四种编码方式分别保存,在 VS 2010 中分别编译,都能够成功编译,不会像 GCC 那样产生警告和错误。
(特别注意:使用 Notepad 程序将源文件以 UTF-8 编码方式保存时,实际上是以 UTF-8 + BOM 编码方式保存的!)
警告 warning: NUL charactor seen; rest of line ignored相关推荐
- Scapy脚本执行出现警告WARNING解决办法
2019独角兽企业重金招聘Python工程师标准>>> (转自:Scapy脚本执行出现警告WARNING解决办法) 安装完scapy,简单写了个脚本执行总是会警告一下: WARNIN ...
- .php on line 0,启动禅道项目管理软件时,报PHP Warning: PHP Startup: in Unknown on line 0解决方法...
启动禅道项目管理软件时,ZenTao\xampp\apache\logs\php_error文件中报如下错误: [20-Jun-2019 08:00:39 UTC] PHP Warning: PHP ...
- 【开发日常】【Makefile】编译时如何将警告(warning)视为错误(error)?
我们有时会遇到内核编译时警告(warning)被视为错误(error)等问题 在内核源码中,移植外部驱动模块,出现报错: error: unused variable 'xxx' [-Werror=u ...
- oracle bround,【案例】Oracle警告 WARNING:inbound connection timed out (ORA-3136)解决办法
天萃荷净 运维DBA反映,巡检alert日志文件中发现大量Oracle日志警告WARNING: inbound connection timed out (ORA-3136) 1.alert日志文件警 ...
- VCS编译仿真警告Warning
VCS编译仿真警告Warning 问题描述 在较大的SOC集成中,通常使用Perl脚本例化子模块到Top层,然而,有时会出现例化出来的输入端口名没有在Top层定义,而且端口的位宽为1bit,那么,ve ...
- 警告Warning: Nashorn engine is planned to be removed from a future JDK release
在java11中使用Nashorn engine,会有警告Warning: Nashorn engine is planned to be removed from a future JDK rele ...
- 【python解决SQLAlchemy+MySQL插入数据时报警告Warning: (1366, “Incorrect string value: ‘\\xD6\\xD0\\xB9\\xFA\\xB】
python解决SQLAlchemy+MySQL插入数据时报警告Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\ ...
- 关闭Java11中即将移除Nashorn引擎的警告Warning: Nashorn engine is planned to be removed from a future JDK release
在java11中使用Nashorn engine,会有警告Warning: Nashorn engine is planned to be removed from a future JDK rele ...
- keil5报警告warning:implicit declaration ‘xxxxxxxx’ is invalid in C99 大部分解决办法
keil5报警告warning:implicit declaration 'xxxxxxxx' is invalid in C99 大部分解决办法 我遇到这个问题是在RM战队调裁判系统的时候遇到的. ...
最新文章
- 面试前临时抱佛脚——常见的Shell脚本面试题
- 算法分析与设计-实验三 贪心算法设计
- SAP CRM WebClient UI 某些icon图标不能正常显示X
- 操作12864(ST7920控制器)
- 1过程流程图 3 apqp_为什么过程开发的平面布置图要遵循精益原则?
- 用DirectionalViewPager代替ViewPager
- 重新开始我的blog内容!
- Bnuoj-29359 Deal with numbers 线段树
- Tomcat8安装及配置详解
- 计算机相关专业的学生如何规划自己的职业?
- word大纲视图快速转成PPT
- java rest 图_java – Serenity Rest服务
- 商场抽奖软件 android,召唤抽奖系统
- Java入门项目——读书管理系统
- Zcash的“十月围城”
- 思想决定生活 -《卡耐基成功之道全书》读书笔记
- html 名词解释 综合解释,HTML和JAVASCRIPT综合练习题2014答案
- Oracle课程-深入学习文档
- 阿里云服务器操作系统如何选择?
- 安卓apk逆向之雷霆解锁VIP会员超详细教程