Qt深入淺出(二)Qt編譯機制

2021-10-03 19:51:49 字數 3779 閱讀 1443

​ 使用qmake.exe 工具解析.pro檔案,然後生成makefile, 通過makefile-32bit.exe解析makefile檔案來編譯,可通過檢視qt creator顯示的編譯資訊。

先執行qmake命令解析class1_1.pro檔案,生成makefile.debug檔案

"c:\qt\qt5.7.0\5.7\mingw53_32\bin\qmake.exe" f:\workspace2\class1_1\class1_1.pro -r

-spec win32-g++

"config+=debug"

"config+=qml_debug"

c:/qt/qt5.7.0/tools/mingw530_32/bin/mingw32-make -f makefile.debug
​ qmake中一行代表一條規則,#代表注釋。例如:qt += widgets,如果想分行書寫,可以使用轉義字元「\」,例如:

sources += main.cpp \

hello.cpp

​ qmake檔案的常用變數:

qt          #指定要用的哪些qt支援庫

sources

#原始檔

headers

#標頭檔案

forms

#用到的ui檔案(ui檔案時用qt設計器生成的)

includepath

#這個用來指定標頭檔案路徑, 例如:includepath += ./mitab

libs

#載入動態庫。例如:libs += ./mitab/libmitab.so

defines

#可以用來定義巨集

config      #新增編譯選項,例如: config += c++11使用c++11特性,config += console使用控制台

translations#字典檔案

template

#生成makefile採用的模板。以下是可供選擇的模板:

#lib:建立乙個庫的makefile。

#vclib:建立乙個庫的visual studio專案檔案。

#subdirs:建立乙個能夠進入子目錄並且為之生成makefile。需要在後面用subdirs=xx來指定那些子目錄。

新建資料夾helloworld,在資料夾中新建檔案hello.pro,內容如下:

sources += hello.cpp

config += console   #應用程式是乙個windows下的控制台應用程式

新建檔案hello.cpp檔案,內容如下:

#include 

using

namespace

std;

intmain(void)

執行qt的dos指令碼

在dos命令列中輸入

cd c:\helloworld        #切換當前路徑到helloworld

c:\qt\qt5.7.0\5.7\mingw53_32\bin\qmake.exe hello.pro #執行qmake解析hello.pro檔案

c:\qt\qt5.7.0\tools\mingw530_32\bin\mingw32-make.exe -f makefile #使用makefile編譯生成最終exe

執行exe檔案

cd release

hello.exe

​ 使用qmake.exe 工具解析.pro檔案,然後生成makefile, 通過makefile-32bit.exe解析makefile檔案來編譯,可通過檢視qt creator顯示的編譯資訊。

先執行qmake命令解析class1_1.pro檔案,生成makefile.debug檔案

"c:\qt\qt5.7.0\5.7\mingw53_32\bin\qmake.exe" f:\workspace2\class1_1\class1_1.pro -r

-spec win32-g++

"config+=debug"

"config+=qml_debug"

c:/qt/qt5.7.0/tools/mingw530_32/bin/mingw32-make -f makefile.debug
​ qmake中一行代表一條規則,#代表注釋。例如:qt += widgets,如果想分行書寫,可以使用轉義字元「\」,例如:

sources += main.cpp \

hello.cpp

​ qmake檔案的常用變數:

qt          #指定要用的哪些qt支援庫

sources

#原始檔

headers

#標頭檔案

forms

#用到的ui檔案(ui檔案時用qt設計器生成的)

includepath

#這個用來指定標頭檔案路徑, 例如:includepath += ./mitab

libs

#載入動態庫。例如:libs += ./mitab/libmitab.so

defines

#可以用來定義巨集

config      #新增編譯選項,例如: config += c++11使用c++11特性,config += console使用控制台

translations#字典檔案

template

#生成makefile採用的模板。以下是可供選擇的模板:

#lib:建立乙個庫的makefile。

#vclib:建立乙個庫的visual studio專案檔案。

#subdirs:建立乙個能夠進入子目錄並且為之生成makefile。需要在後面用subdirs=xx來指定那些子目錄。

新建資料夾helloworld,在資料夾中新建檔案hello.pro,內容如下:

sources += hello.cpp

config += console   #應用程式是乙個windows下的控制台應用程式

新建檔案hello.cpp檔案,內容如下:

#include 

using

namespace

std;

intmain(void)

執行qt的dos指令碼

在dos命令列中輸入

cd c:\helloworld        #切換當前路徑到helloworld

c:\qt\qt5.7.0\5.7\mingw53_32\bin\qmake.exe hello.pro #執行qmake解析hello.pro檔案

c:\qt\qt5.7.0\tools\mingw530_32\bin\mingw32-make.exe -f makefile #使用makefile編譯生成最終exe

執行exe檔案

cd release

hello.exe

Qt深入淺出(二)Qt編譯機制

使用qmake.exe 工具解析.pro檔案,然後生成makefile,通過makefile 32bit.exe解析makefile檔案來編譯,可通過檢視qt creator顯示的編譯資訊。先執行qmake命令解析class1 1.pro檔案,生成makefile.debug檔案 c qt qt5....

Qt深入淺出(四)布局管理器

布局管理器可以讓程式設計師擺脫繁瑣的視窗位置大小設定工作。並且布局管理器可以依據視窗大小變更布局控制項的位置大小。布局管理器基類為qlayout繼承至qobject 和qlayoutitem,它是乙個抽象基類,需要被進一步繼承才能使用。它的派生類有qhboxlayout qvboxlayout和qg...

深入淺出Spring(二)

ioc概念 控制反轉 inversion of control 是乙個重要的物件導向程式設計的法則來削減電腦程式的耦合問題。它還有乙個名字叫做依賴注入 dependency injection ioc 不是什麼技術,它是一種設計模式。例項演示 為了更好的說明 ioc,我為大家舉乙個簡單的例子,如有這...