很久沒用Qt了,今天又從新安裝了一個,結果遇到很多問題函數
本機環境:VS2015,Qt5.7工具
裝好後,就新建工程測試了一下,結果沒法編譯,提示測試
:-1: error: cannot open C:\Users\個人用戶名,中文的\AppData\Local\Temp\main.obj.7148.0.jom for write編碼
這一看又是中文路徑的問題啊,可是,系統路徑,很差改啊,jom是個什麼東西?網上搜了一下,獲得解決方法:調試
工具->選項->構建和運行:概要, 取消 <使用jom代替nmake>前的勾.再次編譯,行了.utf-8
可是沒法調試,說沒配置調試器,繼續搜索,微軟官方下載Debugging Tools for Windows編譯器
官網提示三種方式:源碼
第一種是安裝WDK,裏面自帶.it
第二種是安裝SDK,裏面自帶.編譯
第三種是在安裝SDK時只選擇安裝Debugging Tools for Windows
好吧,第三種比較好,安裝完畢,在<構建和運行>裏設置一下,試一下,能用!
而後吧,中文亂碼的問題!
Qt工程沒有亂碼,只要文件編碼是utf-8.可是控制檯工程會亂碼,把文件編碼改爲gbk,不亂碼了,可是Qt亂碼了.
之前的解決方案是:文件編碼用GBK,QT工程裏添加設置編碼的代碼(網上搜到的那幾句)
可是如今不想那麼作,由於不想添加代碼,同時要用UTF-8編碼,因此要解決一下控制檯程序亂碼的問題.
網上搜索有沒有設置編碼的編譯選項,沒有,可是有一處說到,MSVC編譯器支持UTF-8格式的源文件,可是若是不帶BOM
會被認爲是ANSI格式的文件...!!!
把源文件轉成帶BOM的UTF-8,正常輸出中文!本覺得這下都是UTF8應該沒問題了吧,沒想到QT程序源碼帶BOM的竟然亂碼
而不帶BOM就不亂碼.崩潰,瘋狂測試了半天,總結各狀況不亂碼的方法以下文件編碼 QT程序 控制檯程序ANSI u8"中文" "中文"UTF8無BOM "中文" 只能函數轉換了UTF8->ANSIUTF8有BOM u8"中文" "中文"