日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

xmake 新增对 Qt 编译环境支持,用自己最喜爱的编辑器去开发 Qt 程序

發布時間:2025/6/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xmake 新增对 Qt 编译环境支持,用自己最喜爱的编辑器去开发 Qt 程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近給xmake新增了對 Qt SDK 環境的支持,現在我們完全可以脫離 Qt Creator 進行 Qt 應用程序的開發,甚至配合 vscode/idea/sublime/vim 等編輯器+xmake 插件(xmake-vscode, xmake-idea, xmake-sublime ...),
用戶完全可以切換到自己最常用的編輯器環境中去開發和構建 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++ -t quickapp_qt test

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

以 quickapp 工程為例,最后生成的空工程xmake.lua內容大概長這樣:

target("qt_demo")-- add rulesadd_rules("qt.application")-- add headersadd_headers("src/*.h")-- add filesadd_files("src/*.cpp") add_files("src/qml.qrc")-- add frameworksadd_frameworks("QtQuick")

Qt SDK 環境配置

默認情況下 xmake 會自動探測 Qt 環境,當然如果找不到 Qt SDK 環境,用戶也可以手動指定 Qt SDK 環境目錄:

$ xmake f --qt=~/Qt/Qt5.9.1

靜態庫程序

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

如果大家想要支持其他構建環境,也只需要方便的自定義一個自己的擴展規則,應用到對應的 target 即可實現,言歸正傳,我們看下 Qt 靜態庫的xmake.lua描述:

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")有什么區別呢,區別就是:

  • set_kind("shared"): 是 xmake 最為基礎的動態庫構建模式,非常原始,不附加任何框架層的依賴庫和配置
  • add_rules("qt.shared"):僅用于 Qt 動態庫的構建,屬于內置的擴展規則,會附加 Qt SDK 的構建環境

控制臺程序

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

target("test")add_rules("qt.console")add_files("src/*.cpp")

Quick 應用程序

從 Qt 目前最新的 SDK,主要提供了兩種 ui app 的構建框架,Quick App 和 Widgets App,xmake 也都進行了支持,并且統一規范成:qt.application Qt 應用程序規則來簡化設置。

target("qt_quickapp")add_rules("qt.application")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 應用程序

Widgets App 的描述規則還是用的qt.application,只需要把.ui 文件添加進去就行了,唯一需要注意的是,帶Q_OBJECTmeta 的頭文件,例如:mainwindow.h這種,
因為有個 moc 預處理過程,所以也需要把它添加到源文件中,這樣 Qt 的構建規則就會檢測到,將其自動進行 moc 預處理。

target("qt_widgetapp")add_rules("qt.application")add_files("src/*.cpp") add_files("src/mainwindow.ui")add_files("src/mainwindow.h") -- 添加帶有 Q_OBJECT 的 meta 頭文件add_frameworks("QtWidgets")

關于 Qt SDK 環境支持的更多詳情可以參考:#160

項目源碼:https://github.com/tboox/xmake,歡迎大伙 star

原文出處:http://tboox.org/cn/2018/05/30/support-qt/

總結

以上是生活随笔為你收集整理的xmake 新增对 Qt 编译环境支持,用自己最喜爱的编辑器去开发 Qt 程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。