網站首頁 編程語言 正文
1.pro文件的作用
QT工程的pro文件,在創建工程時由QTCreater自動創建,我們可以往里面添加內容,增加庫文件的聲明,包含路徑、預處理器定義,生成目錄,輸出中間目錄等等設置。
2.一個簡單的示例
QT+= core gui charts
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = qcharts
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp \
mainwindow.cpp \
mylineseries.cpp \
myvalueaxis.cpp
HEADERS += \
mainwindow.h \
mylineseries.h \
myvalueaxis.h
FORMS += \
mainwindow.ui \
mylineseries.ui \
myvalueaxis.ui
- QT:指定所要使用的Qt模塊
- TARGET:指定編譯后生成的目標文件名稱
- TEMPLATE:指定編譯后生成app 還是 lib
- DEFINES:預定義預處理器符號
- SOURCES:當前工程中的C++源文件
- HEADERS:當前工程中的C++頭文件
- FORMS:當前工程中的ui文件
以上是一個簡單的示例所用到的配置選項。還有一些常用的別的配置選項如下。
- VERSION:目標庫版本號
- DESTDIR:指定最終文件生成的目錄
- UI_DIR:UIC將ui轉化為頭文件所存放的目錄
- RCC_DIR:RCC將qrc文件轉化為頭文件所存放的目錄
- MOC_DIR:MOC命令將含Q_OBJECT的頭文件轉換為標準的頭文件存放的目錄
- RC_FILE:程序中所用到的圖片等資源文件
- LIBS:指定工程要鏈接的庫路徑
- INCLUDEPATH:指定工程要加載的頭文件路徑
- CONFIG:工程配置和編譯的參數
- LIBPATH:指定工程要鏈接的庫路徑
- INSTALLS:指定make install后程序的目錄
3.指定鏈接的三方庫
CONFIG(debug, release|debug){
win32:QCPLIB = qcustomplotd2
else: QCPLIB = qcustomplotd
} else {
win32:QCPLIB = qcustomplot2
else: QCPLIB = qcustomplot
}
INCLUDEPATH += ../thirdPart
LIBS += -L../thirdPart -l$$QCPLIB
也可以這樣寫
CONFIG(debug, release|debug){
win32:QCPLIB = qcustomplotd2
else: QCPLIB = qcustomplotd
} else {
win32:QCPLIB = qcustomplot2
else: QCPLIB = qcustomplot
}
INCLUDEPATH += ../thirdPart
LIBPATH += ../thirdPart
LIBS += -l$$QCPLIB
4.編譯為庫
4.1靜態庫
TEMPLATE = lib
CONFIG += staticlib
4.2動態庫
去掉CONFIG += staticlib這一行
5.指定debug,release,win32平臺還是別的平臺
省略號,自己補足內容
CONFIG(debug, release|debug){
win32:...
else:...
} else {
win32:...
else:...
}
例:指定win32和unix的庫路徑
win32:LIBS+= libavformat.lib
unix:LiBS+= libavformat.so
6.判斷編譯環境是x86架構還是arm架構
contains(QT_ARCH, arm64){
message("arm64") #在這里處理arm64所需
}else{
message("x86")
}
以上可以組合使用,如下。
CONFIG += debug_and_release
CONFIG(debug, debug|release){ //處理debug
win32{
}
unix{
contains(QT_ARCH, arm64){
message("arm64")
}else{
message("x86")
}
}
}else{ //處理release
win32{
}
unix{
}
}
7.在linux下編譯后指定make install后的文件路徑
target.path = /home/admin1/target
#需要拷貝的文件以及拷貝目地位置
conf.path = /home/admin1/target
conf.files += \
../config.ini \
../sqlite.db \
INSTALLS += target conf
上述描述的是,在終端編譯完成后,執行make install,生成的可執行文件會拷貝到/home/admin1/target 這個路徑下,../config.ini ? ../sqlite.db,一個配置文件和一個數據庫文件也會拷貝到/home/admin1/target路徑下。
原文鏈接:https://blog.csdn.net/wzz953200463/article/details/124107110
相關推薦
- 2022-10-25 在IIS上部署Go?API項目_win服務器
- 2023-12-13 在Excel中找出某個重復項并用顏色標示出來
- 2022-12-01 Go初學者踩坑之go?mod?init與自定義包的使用_Golang
- 2023-12-09 如何使用Python核對文件夾內的文件
- 2022-07-19 iptables限制docker端口禁止對某臺主機進行提供服務
- 2022-06-08 Spring源碼之Bean的掃描以及創建
- 2022-12-14 詳解如何利用Redis實現生成唯一ID_Redis
- 2022-04-21 Tomcat解決catalina.out文件過大的問題_Tomcat
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支