gcc编译报错:程序中有游离的‘/357’‘/273’‘/277’等

当使用gcc编译时遇到'/357'/'/273'/'/277'等错误,可能是因为文件存储格式问题。通过`od -c`命令查看报错符号,如果替换英文标点仍报错,可能文件为ANSI格式或UTF-8带BOM,需要转为UTF-8无BOM编码。gcc和g++不支持UTF-8带BOM格式,可以使用`hd`命令检查文件是否含有BOM。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

造成的原因主要有两个:

1. 程序(*.c,*.h)中使用了中文的标点符号(全角),比如;,},+。
改成英文的标点半角符号就行了。
甚至有时候空格也会出现类似错误,删掉该空格 重新输入。
vim里面做类似替换还是很容易的。

如何看到报错的符号?
od -c hello.c > log.txt
在log中就能看到符号了

2. 
如果替换成了英文标点还出错的话,还报此错误,那么就是文件存贮格式的问题了。
一般在windows下的文件都存成ansi格式,为了在linux下能通用,建议保存成UTF-8不带BOM 
编码格式,因为目前gcc和g++不支持UTF-8带BOM编码格式。

用g++编译的时候碰到UTF-8 BOM错误怎么办?
$ g++ -I../../include unit_test.cpp -o unit_test
unit_test.cpp:1: 错误: 程序中有游离的'/357'
unit_test.cpp:1: 错误: 程序中有游离的'/273'
unit_test.cpp:1: 错误: 程序中有游离的'/277'
In file included from unit_test.cpp:63:
...

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值