如何將Qt pro工程文件 改成CMakeLists.txt

Qt pro工程管理文件,本人認為是很好用的,語法簡潔易懂,但是只能在QtCreator中使用,想用使用其它IDE比如Clion或者vs,CMakeLists是種通用的選擇,另外QtCreator的調試功能跟粑粑一樣。

一,思路

C++ 中編譯,無外乎代碼本身的頭文件,源文件。三方庫的頭文件,庫文件。Qt本身自帶了UI文件和qrc資源文件。再就是宏定義或者路徑的配置。

二,Qt pro文件

#需要的Qt模塊
QT       += core gui concurrentgreaterThan(QT_MAJOR_VERSION, 4): QT += widgets#C++版本
CONFIG += c++17#源文件
SOURCES += \main.cpp \util/DarkStyle.cpp #頭文件
HEADERS += \3rd/snap7/include/snap7.h \util/DarkStyle.h #UI文件
FORMS += \widget.ui \widget/configwidget.ui#翻譯文件
TRANSLATIONS += \consistency_zh_CN.tsCONFIG += lrelease
CONFIG += embed_translations# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target#第三方庫
INCLUDEPATH += $$PWD/3rd/snap7/include
LIBS += -L$$PWD/3rd/snap7/lib -lsnap7win32:LIBS += -luser32#資源文件
RESOURCES += \app.qrc \resources/darkstyle.qrc#圖標文件
RC_ICONS = app.ico

三,CMakeLists 文件

cmake_minimum_required(VERSION 3.20)
project(Consistency VERSION 1.0.0)#C++ 版本
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_INCLUDE_CURRENT_DIR ON)#用來編譯ui文件
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)#指定輸出目錄
set(OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${OUTPUT_PATH})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${OUTPUT_PATH})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${OUTPUT_PATH})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${OUTPUT_PATH})#需要加載的Qt模塊
set(CMAKE_PREFIX_PATH "D:\\Qt\\5.15.2\\msvc2019_64\\lib\\cmake\\Qt5")
find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Network Concurrent)#頭文件
set(HEADERS3rd/snap7/include/snap7.h util/DarkStyle.h 
)#源文件
set(SOURCESmain.cpp util/DarkStyle.cpp 
)#UI文件
set(FORMSwidget.ui widget/configwidget.ui
)#資源文件
set(QRC_FILESapp.qrcresources/darkstyle.qrc
)
qt5_add_resources(QRC_HEADERS ${QRC_FILES})#第三方庫
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rd/snap7/include)
file(GLOB Snap7_LIB ${CMAKE_CURRENT_SOURCE_DIR}/3rd/snap7/lib/*.lib)#生成可執行文件
add_executable(${PROJECT_NAME}${HEADERS}${SOURCES}${FORMS}${QRC_HEADERS}logo.rc
)#鏈接對應的庫
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Concurrent)
target_link_libraries(${PROJECT_NAME} User32.Lib)
target_link_libraries(${PROJECT_NAME}  ${Snap7_LIB})

四,備注

如何將Qt pro工程文件 改成CMakeLists.txt - Qt hello

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13867.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13867.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13867.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FreeBSD/Linux下的系統資源監視器排隊隊

bpytop bpytop 是一個基于 Python 的資源監視器,可以在 FreeBSD 上使用。它提供了對文件寫入磁盤、網絡、CPU 和內存占用的監視功能。 pkg install bpytop 或者用ports安裝 cd /usr/ports/sysutils/bpytop/ make install clean bashtop bashtop 也是一個基于 P…

化簡資源分配圖判斷是否發生死鎖

目錄 1.資源分配圖的概念 2.判斷是否發生死鎖 1.資源分配圖的概念 資源分配圖表示進程和資源之間的請求關系,例如下圖: P代表進程,R代表資源,R方框中 有幾個圓球就表示有幾個這種資源,在圖中,R1指向P1&a…

C++ RPC ORM 高速解析

支持所有常用編程語 https://capnproto.org/GitHub - capnproto/capnproto: Capn Proto serialization/RPC system - core tools and C library https://capnproto.org/capnproto-c-win32-1.0.2.zip 常用命令: capnp help capnp compile -oc myschema.capn…

java文件上傳時給pdf、word、excel、ppt、圖片添加水印

前言 在開發的過程中,因為文件的特殊性,需要給pdf、word、excel、ppt、圖片添加水印。添加水印可以在文件上傳時添加,也可以在文件下載時添加。因為業務的某些原因,文件需要在瀏覽器預覽,如果用戶將文件另存為則無法添…

算法與數據結構匯總

基本 數組 字符串 排序 矩陣 模擬 枚舉 字符串匹配 桶排序 計數排序 基數排序 回文:中心擴展 馬拉車 樹上啟發式合并 括號 數學表達式 字符串:前后綴分解。 貢獻法 分組: 【狀態機dp 狀態壓縮 分組】1994. 好子集的數目 【動態規劃】【前綴…

Excel中sum的跨表求和

#實際工作中,一個xlsx文件中會包含多個Excel表格,一般會有“總-分”的關系,如何把分表里的數字匯總到總表里呢? 一般有上圖所示的兩種表達方式。 可以使用通配符 *:代表任意個數、任意字符; ?&…

51單片機的最小系統詳解

51單片機的最小系統詳解 1. 引言 在嵌入式系統中,51單片機被廣泛應用于各種小型控制器和嵌入式開發板中。相信很多人都接觸過51單片機,但是對于51單片機的最小系統卻了解得不夠深入。本文將從振蕩電路、電源模塊、復位電路、LED指示燈和調試接口五個方面詳細介紹51單片機的…

quartz定時任務

Quartz 數據結構 quartz采用完全二叉樹:除了最后一層每一層節點都是滿的,而且最后一層靠左排列。 二叉樹節點個數規則:每層從左開始,第一層只有一個,就是2的0次冪,第二層兩個就是2的1次冪,第三…

DOS學習-目錄與文件應用操作經典案例-attrib

新書上架~👇全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目錄 一.前言 二.使用 三.案例 一.前言 DOS系統中的attrib命令是一個用于顯示或更改文件&#…

設計模式——職責鏈(責任鏈)模式

目錄 職責鏈模式 小俱求實習 結構圖 實例 職責鏈模式優點 職責鏈模式缺點 使用場景 1.springmvc流程 ?2.mybatis的執行流程 3.spring的過濾器和攔截器 職責鏈模式 使多個對象都有機會處理請求,從而避免請求的發送者和接受者之間的耦合關系。將這個對象連成…

github設置項目分類

https://www.php.cn/faq/541957.html https://docs.github.com/zh/repositories/working-with-files/managing-files/creating-new-files

什么是回表,如何解決回表問題

下面表中:主鍵id是聚簇索引,name是輔助索引。 執行這樣一條SQL: select name from A where name"s;name字段是有索引,所以MYSQL在通過name進行査詢的時候,是需要掃描兩顆Btree樹的。 第一遍:先通過二級索引定位主鍵值1。第二遍:根據主鍵…

免費發布web APP的四個途徑(Python和R)

免費發布數據分析類🌐web APP的幾個途徑📱 數據分析類web APP目前用來部署生信工具,統計工具和預測模型等,便利快捷,深受大家喜愛。而一個免費的APP部署途徑,對于開發和測試APP都是必要的。根據筆者的經驗…

word-形狀繪制、smartart、visio

一、人員架構圖繪制 小技巧: 1、ctrlshift水平復制 2、點擊圖形,右鍵設置為默認形狀 3、插入-形狀-右鍵-鎖定繪圖模式,按esc退出狀態 4、插入-形狀-新建繪圖畫布,代替組合問題 畫布中存在錨點,便于直線連接 二、s…

網絡安全相關面試題(hw)

網絡安全面試題 報錯注入有哪些函數 updatexml注入 載荷注入 insert注入 updata注入 delete注入 extractvalue()注入 注入防御方法 涵數過濾 直接下載相關防范注入文件,通過incloud包含放在網站配置文件里面 PDO預處理,從PHP 5.1開始&…

electron中BrowserWindow的show事件沒有觸發踩坑記錄

class ElectronApi {static mainWindow;//主窗口createWindow() {try {// Create the browser window.this.mainWindow new BrowserWindow({width: 1200,height: 800,minHeight: 800,minWidth: 1200,webPreferences: {preload: preloadPath,// nodeIntegration: true,// conte…

windows怎么復制文件到vmware 中ubantu虛擬機,vmware中的虛擬機怎么聯網,NAT參數和DHCP參數。

目錄 windows怎么復制文件到vmware 中ubantu虛擬機 vmware中的虛擬機怎么聯網 NAT參數和DHCP參數。

Linux環境Docker安裝,使用Docker搭建Mysql服務實戰

1、環境:阿里云Linxu服務器 2、安裝docker # 1、yum 包更新到最新 yum update # 2、安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的 yum install -y yum-utils device-mapper-persistent-data…

OpenSSL之API編程 - C/C++實現AES、DES、3DES、SM4對稱加密算法

文章介紹 本文章介紹了OpenSSL計算對稱加解密算法(AES、DES、3DES、SM4等)的相關接口,并使用C語言實現了AES和SM4加解密。 對稱加解密算法 對稱加密與非對稱加密算法 OpenSSL介紹 openssl是一個功能豐富且自包含的開源安全工具箱。它提供的主要功能有&#xff…

深度學習之基于YOLOV5的口罩檢測系統

歡迎大家點贊、收藏、關注、評論啦 ,由于篇幅有限,只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景 隨著全球公共衛生事件的頻發,口罩成為了人們日常生活中不可或缺的一部分。在公共場所&am…