導航:首頁 > 源碼編譯 > vs2019文件不編譯

vs2019文件不編譯

發布時間:2023-08-25 11:04:18

『壹』 出現中文符號時,編譯錯誤信息顯示什麼

Copyright © 1999-2020, CSDN.NET, All Rights Reserved



打開APP



System_sleep
關注
VS2019代碼中包含中文內容導致的編譯錯誤和列印輸出亂碼問題 原創
2022-06-25 17:45:47
2點贊

System_sleep

碼齡11年

關注
前言
在VS2019中,如果代碼中包含中文字元串定義或注釋,會導致各種莫名其妙的編譯錯誤,就算是運氣好,編譯沒有報錯,也會遇到控制台列印中文亂碼的問題,讓人倍感煩躁。

編譯問題
1. 代碼中定義了中文字元串常量導致編譯錯誤:「常量中有換行符「 ;
2. 代碼中包含中文注釋導致編譯錯誤:找不到XXX (宏、變數)、XXX不是常量/變數及由於找不到聲明導致的其他問題;

列印亂碼問題
代碼列印中文字元串,在命令提示符輸出是亂碼;

解決方法,三種方法任選其一:
一. 修改代碼文件格式為utf-8帶簽名,讓MSVC編譯器能夠自動識別並以utf-8 BOM格式載入文件:

使用外部編輯器將代碼文件保存為utf8-BOM格式;
或 打開代碼文件,在VS2019 「高級保存選項」 中將代碼文件保存格式選擇為「Unicode-帶簽名「;

二. 修改代碼格式:

修改中文字元串、中文注釋的格式,在中文結尾處添加英文空格,讓MSVC編譯器能夠以GBK編碼方式載入編譯中文utf-8編碼字元串,可以解決編譯報錯問題,列印還是亂碼;

三. 強制指定MSVC編譯器載入代碼文件的編碼格式:

在VS2019「項目」-「工程屬性」對話框-「C/C++」-「所有選項"子頁,在「附加選項」內添加 「/utf-8」 (等同於」/source-charset:utf-8 /execution-charset:utf-8");
在VS2019「項目」-「工程屬性」對話框-「C/C++」-"所有選項"子頁,在「附加選項」內添加 「/source-charset:utf-8 /execution-charset:gbk」 (前者表示文件本身的編碼,後者表示編譯以後的字元數組內的位元組是什麼編碼);

總結:
1. 如果是新建工程,推薦方法一,讓所有新建代碼文件都統一為utf-8 BOM 格式;
2. 如果是跨平台代碼,且文件包含少量中文注釋,可以嘗試方法二;
3. 如果是已有的歷史復雜工程(非使用工具導出的解決方案),可以嘗試方法三, 但需要注意設置execution-charset時,要同時考慮到UI顯示和列印二者對字元串編碼的要求(可能不一致);

閱讀全文

與vs2019文件不編譯相關的資料

熱點內容
網路流理論演算法與應用 瀏覽:795
java和matlab 瀏覽:388
釘釘蘋果怎麼下app軟體 瀏覽:832
php網站驗證碼不顯示 瀏覽:859
鋁膜構造柱要設置加密區嗎 瀏覽:344
考駕照怎麼找伺服器 瀏覽:884
阿里雲伺服器如何更換地區 瀏覽:972
手機app調音器怎麼調古箏 瀏覽:503
銳起無盤系統在伺服器上需要設置什麼嗎 瀏覽:19
紅旗計程車app怎麼應聘 瀏覽:978
如何編寫linux程序 瀏覽:870
吉利車解壓 瀏覽:248
java輸入流字元串 瀏覽:341
安卓軟體沒網怎麼回事 瀏覽:785
dvd壓縮碟怎麼導出電腦 瀏覽:274
冒險島什麼伺服器好玩 瀏覽:541
如何在伺服器上做性能測試 瀏覽:793
命令序列錯 瀏覽:259
javaif的條件表達式 瀏覽:576
手機app上傳的照片怎麼找 瀏覽:531