程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> Qt構建及編譯出錯問題及解決方案

Qt構建及編譯出錯問題及解決方案

編輯:關於C++

整個一下午都在為Qt中出現的構建及編譯問題而糾結,終於發現了問題所在,故記錄下來並闡述解決方法。

問題描述:

當筆者運行qtNetTest的qt widget項目時,一直報錯:

Running steps for project qtNetTest...

Could not start process "F:\Qt_5.3\5.3\mingw482_32\bin\qmake.exe"

C:\ProjectFolder\qt_projects\qtNetTest\qtNetTest.pro -r -spec win32-g++

"CONFIG+=debug"

Error while building/deploying project qtNetTest (kit: Desktop Qt 5.3.0 MinGW 32bit)

When executing step 'qmake'

Elapsed time: 00:00.

問題剖析及解決方案:

剛開始,筆者一直以為是項目文件路徑存在中文字符,當仔細思考及驗證後,發現中文項目路徑一般的報錯信息為:

Running steps for project qtNetTest...

Starting process "F:\Qt_5.3\5.3\mingw482_32\bin\qmake.exe"

C:\程序\qt_projects\qtNetTest\qtNetTest.pro -r -spec win32-g++

"CONFIG+=debug"

Cannot find file : C:\程序\qt_projects\qtNetTest\qtNetTest.pro

Error while building/deploying project qtNetTest (kit: Desktop Qt 5.3.0 MinGW 32bit)

When executing step 'qmake'

Elapsed time: 00:00.

此種情況的報錯與筆者所遇到的問題的不同就在於後者的報錯信息中出現了”Cannot find file”信息,此種信息表示qmake程序無法找到.pro文件,導致此錯誤的原因即在於項目文件路徑中有中文,而qmake無法識別中文(字符編碼集的不同,當然通過修改qt的字符編碼集是可以實現識別中文的),從而導致錯誤發生。

對於自己所遇到的報錯問題,筆者發現錯誤發生的關鍵在於build directory(構建目錄)的設定。

在發生錯誤時,

而正確的情況下,應該為:

我們需要將構建目錄設置為項目文件夾所在目錄。

當然,這裡,對於構建目錄還有兩點說明(這兩種情況下,程序均可以順利通過構建和編譯):

1、qmake不支持構建目錄在源文件目錄之下(不建議使用此種方法):

返回欄目頁:http://www.bianceng.cn/Programming/cplus/

2、Shadow build(隱式構建):上面所述情況皆為隱式構建。

***顯式構建,構建目錄與工程目錄相同(個人比較推薦此種構建方式,因為文件組織更加有條理,更加易於管理)。

小結

對於遇到的此問題,個人究其原因在於:當改變qt的工作目錄時,由於文件是移動的過程,對於項目運行環境的文件改變並未隨著文件移動而改變,因此,我們在移動項目文件夾後應該重新檢查項目的構建和運行環境。當然,對於中文路徑,依舊需要留意。

作者:csdn博客 Adoryn

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved