歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

GCC 編譯報錯:程序中有游離的 \357’ \273’ \277’

中文下:
cc -c -I. test.c -o output/obj/test.o
test.c:1: 錯誤:程序中有游離的 \357’
test.c:1: 錯誤:程序中有游離的 \273’
test.c:1: 錯誤:程序中有游離的 \277’

英文下:
cc -c -I. test.c -o output/obj/test.o
test.c:1: error:stray \357’ in program
test.c:1: error:stray \273’ in program
test.c:1: error:stray \277’ in program

造成的原因主要有兩個:
1.源代碼(*.c / *.h)中使用了中文的標點符號(全角標點),如:逗號、分號、空格、加號、花括號。
2.源代碼文件為 UTF-8 BOM 編碼格式,如何判斷文件是否是使用了 UTF-8 BOM 編碼格式的呢?
$ cat test.c | hd -n 10
00000000  ef bb bf 2f 2a 0a 20 2a  20 e7                    |.../*. * .|
0000000a
輸出的前三個碼是:ef bb bf,表示該文件是UTF-8 BOM格式。
解決辦法:
1.安裝 enca
$ sudo apt-get install enca

2.將所有 *.c 文件由 UTF-8 BOM 編碼格式轉成 UCS-2
$ enca -L zh_CN -x ucs-2 *.c

3.再查看 test.c 文件的編碼格式
$ cat test.c | hd -n 10
00000000  fe ff 00 2f 00 2a 00 0a  00 20                    |.../.*... |
0000000a

Copyright © Linux教程網 All Rights Reserved