xmake新增對Qt編譯環境支援

2022-05-23 14:06:14 字數 2386 閱讀 9673

在最新的xmake v2.2.1版本中,新增了對qt sdk環境的支援,我們完全可以脫離qt creater進行qt應用程式的開發,甚至配合vscode/idea等編輯器+xmake外掛程式(xmake-vscode, xmake-idea …),

使用者完全可以切換到自己最常用的編輯器環境中去開發和構建qt程式,例如這樣:

通過模板建立空工程

xmake內建了一些工程模板可以用來快速建立乙個基於qt的空工程,例如:

$ xmake create -l c++

-t console_qt test

$ xmake create -l c++

-t static_qt test

$ xmake create -l c++

-t shared_qt test

$ xmake create -l c++

目前主要提供上述四種工程模板,對應:控制台程式、靜態庫、動態庫、ui應用程式。

target("qt_demo")

-- add rules

-- add headers

add_headers("src/*.h")

-- add files

add_files("src/*.cpp")

add_files("src/qml.qrc")

-- add frameworks

add_frameworks("qtquick")

qt sdk環境配置

預設情況下xmake會自動探測qt環境,當然如果找不到qt sdk環境,使用者也可以手動指定qt sdk環境目錄:

$ xmake f --qt=~/qt/

qt5.9.1

靜態庫程式

xmake通過內建的構建規則qt.static,將其應用到對應的target,即可讓相關target支援qt靜態庫的構建,非常的方便簡潔,關於構建規則的說明,可參考相關文件:內建規則

target("test")

add_rules("qt.static")

add_files("src/*.cpp")

add_frameworks("qtnetwork", "qtgui")

非常簡單,一般只需要這幾行就ok了,如果需要用到qt的一些框架庫,可以通過add_frameworks來新增, 接著就是正常的編譯過程:

$ xmake
動態庫程式

動態庫程式跟上節介紹的靜態庫描述規則類似,唯一的區別就是吧構建規則改成add_rules("qt.shared")就行了。

target("test")

add_rules("qt.shared")

add_files("src/*.cpp")

add_frameworks("qtnetwork", "qtgui")

add_rules("qt.shared")和之前的set_kind("shared")有什麼區別呢,區別就是:

控制台程式

控制台也是類似,直接替換構建規則就可以了:qt.console

target("test")

add_rules("qt.console")

add_files("src/*.cpp")

quick應用程式

add_files("src/*.cpp")

add_files("src/qml.qrc")

add_frameworks("qtquick")

看上述描述,僅僅只需要把對應的qml.qrc作為原始檔新增進去,然後附加需要的qtquick依賴庫就行了。

注:雖然xmake的add_links也是用來新增依賴庫進行鏈結的,但是這裡建議對於qt sdk提供的庫還是用add_frameworks來新增,因為所有qt的構建規則都對add_frameworks進行了擴充套件,

對qt自帶的框架庫進行了更好的支援,也能根據構建模式自動切換debug/release版本的qt庫。

widgets應用程式

add_files("src/*.cpp")

add_files("src/mainwindow.ui")

add_files("src/mainwindow.h") -- 新增帶有 q_object 的meta標頭檔案

add_frameworks("qtwidgets")

原文出處:

windows MINGW環境 編譯Qt 庫

需要用到qt靜態版,而官方未提供,需要自己編譯。qt everywhere opensource src 1 修改環境變數工 修改前請先備份當前的環境變數。然後 1 檢查系統變數path,刪除有關mingw其他版本等資訊,以免與後續的mingw32 make衝突。2 檢查使用者變數include l...

QGIS初識 Qt編譯環境配置

2 新增庫頭引用 osgeo4w include,qgis include 3 新增巨集指令 core export declspec dllimport gui export declspec dllimport python export declspec dllimport analysis ...

PC機安裝Qt以及QT交叉編譯環境

pc apt get install qtcreator qt embedded for zedboard 之前我們已經配置好了交叉編譯環境使用的環境變數path和 cross compile,為了方便操作,還可以在設定如下幾個環境變數。export zynq qt build opt zedboa...