gcc編譯報錯:程序中有遊離的‘\357’‘\273’‘\277’等 解決方法
原文:https://www.cnblogs.com/lidp/archive/2009/06/17/1697886.html
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:
...
或在英文係統下:
$ g++ -I../../include unit_test.cpp -o unit_test
unit_test.cpp:1: error: stray '\357' in program
unit_test.cpp:1: error: stray '\273' in program
unit_test.cpp:1: error: stray '\277' in program
In file included from unit_test.cpp:63:
...
如何判斷文件是否是使用UTF-8 BOM存儲的?
執行下麵的命令:
$ cat cpp/src/unit_test/unit_test.cpp |hd -n 10
00000000 ef bb bf 2f 2a 2a 2a 2a 2a 2a |.../******|
0000000a
最後更新:2017-04-02 06:51:59
上一篇:
java.lang.UnsatisfiedLinkError: Can't load library from JNI code
下一篇:
創新源於模仿之五:做一個自己的QuickAction
移動互聯網的入口之爭
《Linux From Scratch》第二部分:準備構建 第五章:構建臨時文件係統- 5.29. Perl-5.20.2
C/C++數組和指針詳解
看阿裏雲窄帶高清如何支援優酷 讓《楚喬傳》更清晰
阿裏上班不打卡,任性進內網,全靠一個“男人”?!
獎勵用戶吐槽 阿裏雲的“用戶回家計劃”意欲何在?
HDU1173 采礦
android中google“定位查詢”編輯
94倍性能進化!阿裏雲企業級ECS發布會推出最新一代異構計算產品
Eclipse的JSP頁麵提示Multiple annotations found at this line或者String cannot be resolved to a type