轉:QT安裝簡介
1、下載QT安裝包
或者http://download.qt.io/archive/qt/
選擇一個你需要的版本,例如 5.10
點選進去後,選擇對應作業系統的安裝包下載,例如qt-opensource-windows-x86-5.10.0.exe
2、安裝QT
安裝包下載好後,雙擊執行,根據提示一步步往下走即可
在選擇要安裝的元件時,可能需要注意了,可以用兩種編譯器編譯QT程式,一個是Visual Studio,另外一個是MinGW,是Minimalist GNUfor Windows的縮寫。
如果選擇了Visual Studio作為編譯器,就必須安裝對應版本的Visual Studio,剛開始我是安裝Visual Studio2015,但是發現VS 太大了,十幾個G,安裝之後C盤所剩無幾。雖然安裝時選到了其他盤,但是大部分仍然還是被裝到了C盤,解除安裝的時候也很無奈,得從控制面板中一個個解除安裝。
雖然安裝QT時選擇了MSVC元件,但是Visual Studio編譯器並沒有一起安裝,因為Visual Studio是微軟的軟體,QT是不敢把它整合到自己的安裝包中,但是如果選擇了MinGW,就會在安裝上MinGW編譯器,因為MinGW是開源的。
3、建立一個工程
安裝好後,雙擊QtCreator執行
選擇新建一個工程,可以選擇Qt Widgets Application
選擇Qt Widgets Application 模版後,編譯執行起來就能看到一個簡單的介面
點選左下角的三角圖示編譯和執行你的程式,這時候就會彈出一個視窗,如果是要編譯出正式版本的exe,可以編譯出release版本
在專案介面中的構建配置中選擇成release,預設是debug,release版本編譯出來的exe會比debug版本的檔案要小。
同樣的點選三角形執行圖示後,會在對應的目錄下生成exe檔案,這個exe檔案雙擊之後還是無法執行的,因為缺少一些dll檔案,那麼我們怎麼知道還缺少什麼dll檔案,可以用QT自帶的工具來完成。
執行該該程式
切換到一個空目錄下,同時把QT編譯出來的exe檔案拷貝到這個目錄下,然後輸入windeployqt ProgramName.exe
執行完之後,會在該目錄下生成需要的檔案,這時再雙擊exe檔案,就可以之前執行程式了,同樣把該目錄下的所有檔案拷貝到其他電腦上,也可以直接執行。
如果覺得在命令視窗中輸入命令很麻煩,也可以使用如下指令碼來幫助生成依賴檔案
qt_pack.bat
-
@echo
off
-
-
rem
set current dir
-
set cur_dir=%cd%
-
-
rem Setting up environment
for Qt usage...
-
set PATH=D:\Qt\Qt5
.10
.0\
5.10
.0\mingw53_32\bin;D:/Qt/Qt5
.10
.0/Tools/mingw530_32\bin;%PATH%
-
-
rem
set windeployqt tool path
-
set windeployqt=D:\Qt\Qt5
.10
.0\
5.10
.0\mingw53_32\bin\windeployqt.exe
-
-
for /f
"delims=\" %%a
in (
'dir /b /a-d /o-d "%cur_dir%\*.exe"') do (
-
for /f
"delims=.exe tokens=1,*" %%i
in (
"%%a")
do (
-
-
rem
if dir
is exist ,remove firstly
-
if exist %cur_dir%\%%i (
-
rd /s /Q %cur_dir%\%%i
-
)
-
rem create dir
-
md %cur_dir%\%%i
-
-
rem move exe file
to designated dir
-
move %%a %cur_dir%\%%i\%%a
-
-
rem execute windeployqt
-
%windeployqt% %cur_dir%\%%i\%%a
-
)
-
)
-
-
rem wait
for input
-
pause
將上面的內容拷貝到一個.bat的指令碼檔案中,放在一個空目錄下,把QT編譯出來的exe也放在這個目錄下,執行指令碼即可
上述指令碼中set PATH 需要改成QT對應的安裝目錄,注意後面的路徑是/
set PATH=D:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin;D:/Qt/Qt5.10.0/Tools/mingw530_32\bin;%PATH%
指令碼中的 windeployqt 也需要改成QT對應的安裝目錄
set windeployqt=D:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\windeployqt.exe
編寫指令碼遇到的問題
for /f "delims=.exe tokens=1,*" %%i in ("%%a")
遍歷當前目錄下的exe檔案,依次呼叫windeployqt 給對應的exe 生成依賴檔案,需要先在當前目錄下建立一個資料夾,資料夾的名稱就是exe對應的檔名,外面的一個for迴圈可以得到exe的檔名和字尾,例如Qwind.exe,這個值存在%%a中,我需要把%%a中的.exe去掉,只保留Qwind,所以寫了第二個for,用於得到.exe前面的字串。
一開始寫成 in (%%a) ,結果死活執行不正確,後面加了單引號'%%a' 也不正確,最後改成了雙引號才沒有問題。
1、下載QT安裝包
或者http://download.qt.io/archive/qt/
選擇一個你需要的版本,例如 5.10
點選進去後,選擇對應作業系統的安裝包下載,例如qt-opensource-windows-x86-5.10.0.exe
2、安裝QT
安裝包下載好後,雙擊執行,根據提示一步步往下走即可
在選擇要安裝的元件時,可能需要注意了,可以用兩種編譯器編譯QT程式,一個是Visual Studio,另外一個是MinGW,是Minimalist GNUfor Windows的縮寫。
如果選擇了Visual Studio作為編譯器,就必須安裝對應版本的Visual Studio,剛開始我是安裝Visual Studio2015,但是發現VS 太大了,十幾個G,安裝之後C盤所剩無幾。雖然安裝時選到了其他盤,但是大部分仍然還是被裝到了C盤,解除安裝的時候也很無奈,得從控制面板中一個個解除安裝。
雖然安裝QT時選擇了MSVC元件,但是Visual Studio編譯器並沒有一起安裝,因為Visual Studio是微軟的軟體,QT是不敢把它整合到自己的安裝包中,但是如果選擇了MinGW,就會在安裝上MinGW編譯器,因為MinGW是開源的。
3、建立一個工程
安裝好後,雙擊QtCreator執行
選擇新建一個工程,可以選擇Qt Widgets Application
選擇Qt Widgets Application 模版後,編譯執行起來就能看到一個簡單的介面
點選左下角的三角圖示編譯和執行你的程式,這時候就會彈出一個視窗,如果是要編譯出正式版本的exe,可以編譯出release版本
在專案介面中的構建配置中選擇成release,預設是debug,release版本編譯出來的exe會比debug版本的檔案要小。
同樣的點選三角形執行圖示後,會在對應的目錄下生成exe檔案,這個exe檔案雙擊之後還是無法執行的,因為缺少一些dll檔案,那麼我們怎麼知道還缺少什麼dll檔案,可以用QT自帶的工具來完成。
執行該該程式
切換到一個空目錄下,同時把QT編譯出來的exe檔案拷貝到這個目錄下,然後輸入windeployqt ProgramName.exe
執行完之後,會在該目錄下生成需要的檔案,這時再雙擊exe檔案,就可以之前執行程式了,同樣把該目錄下的所有檔案拷貝到其他電腦上,也可以直接執行。
如果覺得在命令視窗中輸入命令很麻煩,也可以使用如下指令碼來幫助生成依賴檔案
qt_pack.bat
-
@echo
off
-
-
rem
set current dir
-
set cur_dir=%cd%
-
-
rem Setting up environment
for Qt usage...
-
set PATH=D:\Qt\Qt5
.10
.0\
5.10
.0\mingw53_32\bin;D:/Qt/Qt5
.10
.0/Tools/mingw530_32\bin;%PATH%
-
-
rem
set windeployqt tool path
-
set windeployqt=D:\Qt\Qt5
.10
.0\
5.10
.0\mingw53_32\bin\windeployqt.exe
-
-
for /f
"delims=\" %%a
in (
'dir /b /a-d /o-d "%cur_dir%\*.exe"') do (
-
for /f
"delims=.exe tokens=1,*" %%i
in (
"%%a")
do (
-
-
rem
if dir
is exist ,remove firstly
-
if exist %cur_dir%\%%i (
-
rd /s /Q %cur_dir%\%%i
-
)
-
rem create dir
-
md %cur_dir%\%%i
-
-
rem move exe file
to designated dir
-
move %%a %cur_dir%\%%i\%%a
-
-
rem execute windeployqt
-
%windeployqt% %cur_dir%\%%i\%%a
-
)
-
)
-
-
rem wait
for input
-
pause
將上面的內容拷貝到一個.bat的指令碼檔案中,放在一個空目錄下,把QT編譯出來的exe也放在這個目錄下,執行指令碼即可
上述指令碼中set PATH 需要改成QT對應的安裝目錄,注意後面的路徑是/
set PATH=D:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin;D:/Qt/Qt5.10.0/Tools/mingw530_32\bin;%PATH%
指令碼中的 windeployqt 也需要改成QT對應的安裝目錄
set windeployqt=D:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin\windeployqt.exe
編寫指令碼遇到的問題
for /f "delims=.exe tokens=1,*" %%i in ("%%a")
遍歷當前目錄下的exe檔案,依次呼叫windeployqt 給對應的exe 生成依賴檔案,需要先在當前目錄下建立一個資料夾,資料夾的名稱就是exe對應的檔名,外面的一個for迴圈可以得到exe的檔名和字尾,例如Qwind.exe,這個值存在%%a中,我需要把%%a中的.exe去掉,只保留Qwind,所以寫了第二個for,用於得到.exe前面的字串。
一開始寫成 in (%%a) ,結果死活執行不正確,後面加了單引號'%%a' 也不正確,最後改成了雙引號才沒有問題。