今天發現用securecrt登陸時,gcc編譯出錯時會出現亂碼,但直接在主機的窗口界面下用Shell編譯卻沒有亂碼。查看了一下當時的錯誤描述,發現它的引號是中文引號,導致在SecureCRT中顯示出錯:
main.c:1:1: error: expected identifier or '(' before numeric constant
在網上查了一下,可以通過修改LC_CTYPE=zh_CN.GBK解決這個問題,具體的方法有兩個:
1. 通過export命令修改LC_CTYPE變量的值
tianfang > export LC_CTYPE=zh_CN.GBK
tianfang > gcc main.c
main.c:1:1: error: expected identifier or '(' before numeric constant
tianfang >
2. 修改/etc/sysconfig/language(大部分linux版本下這個文件叫/etc/sysconfig/i18n)中的變量設置,重新登陸后生效。
#RC_LC_CTYPE=""
RC_LC_CTYPE="zh_CN.GBK"
我個人比較推薦方法2。