QT .pro文件中的变量说明
https://blog.csdn.net/tanou3212/article/details/79942840
TEMPLATE:定义了工程的编译模式
赋值方式为:TEMPLATE=app
(1) app :建立一个应用程序的makefile,这是默认值,即如果template没有被指定,这个将被使用
(2) lib :建立一个库的makefile
(3) vcapp : 建立一个应用程序的Visual Studio项目文件
(4) vclib :建立一个库的Visual Studio项目文件
(5) subdirs :创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile
TARGET:指定生成的应用程序名
赋值方式为:TARGET = pksystem
DESTDIR:指定生成的应用程序放置的目录
赋值方式为:DESTDIR = destdir,其中,destdir为生成的应用程序放置的目录
DEPENDPATH:程序编译时依赖的相关路径
赋值方式为:DEPENDPATH += . forms include qrc sources
INCLUDEPATH:指定工程要用到的头文件路径,一般包括用户自定义的头文件路径或没有放入系统头文件路径的头文件路径
赋值方式为:INCLUDEPATH += . systeminclude,其中.表示当前目录,systeminclude为系统头文件路径
SOURCES:工程需要的源文件
如:SOURCES += main.cpp mainwindow.cpp
HEADERS:工程所需要的头文件,一般包括用户自定义的头文件或未放入系统头文件路径的头文件
如:HEADERS += mainwindow.h
FORMS:工程要用到的ui文件(ui文件时用Qt designer生成的)
如:FORMS += mainwindow.ui
LIBS:加载库文件
赋值方式为:LIBS+= -L/usr/local/lib -lm
或者 LIBS += /usr/local/libm.so
UI_DIR:UIC将ui转化为头文件所存放的目录
RCC_DIR:RCC将qrc文件转化为头文件所存放的目录
MOC_DIR:MOC命令将含Q_OBJECT的头文件转换为标准的头文件存放的目录
OBJECTS_DIR:生成的目标文件存放的目录
DEFINES:定义编译选项,在编写程序时可以使用#ifndef xx_xxx_ ...
RC_FILE :程序中所用到的图片等资源文件
RESOURCES:加载要用到的资源*.qrc文件
如:RESOURCES += image.qrc
CODECFORSRC:源文件编码方式
如:CODECFORSRC = GBK
TRASHLATIONS:加载要用到的语言翻译*.ts文件
CONFIG:告诉qmake应用程序的配置信息
(1)可以用来指定是生成debug模式还是release模式,也可以都生成
CONFIG += debug_and_release
CONFIG(debug,debug|release){
TARGET= hello
DESTDIR= ./debug
}else{
TARGET= hello
DESTDIR= ./release
}
(2)可以用来打开编译器警告(warn_on输出尽可能多的警告信息)或者关闭(warn_off -编译器会输出尽可能少的警告信息)
(3)可以用来配置要Qt加载库,例如如果要用到Qt的多线程,则:CONFIG+=qt thread
(4)要运行console:CONFIG +=console
平台信息:win32和unix
QT是跨平台的,所以我们在不同的平台上用同一个pro文件,这要加入有关平台的信息。windows平台是win32,Linux平台是unix。
例如在Windows和Linux的动态库文件格式是不一样的,一个是lib文件一个是so文件:
win32:LIBS+= ./mitab/mitab_i.lib
unix:LiBS+= ./mitab/libmitab.so
再如:
win32{SOURCES+= hello_win.cpp //win平台}
unix{SOURCES+= hello_linux.cpp //unix/linux平台}
变量解析符号$$
可以通过在其它任何一个变量的变量名前加$$来把这个变量的值分配给当前的变量
如:MY_DEFINES= $$DEFINE ,将DEFINE的值分配给MY_DEFINES
==================
https://blog.csdn.net/qq_32320399/article/details/80310872
注释
以”#”开始的行,直到结束
模板变量
告诉qmake生成哪种makefile
TEMPLATE = app
其中
app - 表示该工程建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用
lib - 表示该工程建立一个库的makefile
subdir - 生成针对子目录的Makefile,子目录由变量SUBDIRS指定;
vcapp - 生成用于VS开发环境的软件工程(只用于windows系统);
vclib - 生成用于VS开发环境的库工程(只用于windows系统);
生成目录
指定生成的可执行程序的目录,可以绝对和相对路径
DESTDIR += ../bin
生成的应用程序名
软件名
TARGET = qtest
编译选项
增添或者移除某个模块、指定编译器所要使用的选项,其可用选项如下:
下面这些选项控制着使用哪些编译器标志:
release - 应用程序将以release模式连编。如果“debug”被指定,它将被忽略。
debug - 应用程序将以debug模式连编。
warn_on - 编译器会输出尽可能多的警告信息。如果“warn_off”被指定,它将被忽略。
warn_off - 编译器会输出尽可能少的警告信息。
下面这些选项定义了所要连编的库/应用程序的类型:
qt - 应用程序是一个Qt应用程序,并且Qt库将会被连接。
thread - 应用程序是一个多线程应用程序。
x11 - 应用程序是一个X11应用程序或库。
windows - 只用于“app”模板:应用程序是一个Windows下的窗口应用程序。
console - 只用于“app”模板:应用程序是一个Windows下的控制台应用程序。
dll - 只用于“lib”模板:库是一个共享库(dll)。
staticlib - 只用于“lib”模板:库是一个静态库。
plugin - 只用于“lib”模板:库是一个插件,这将会使dll选项生效。
增添C++11和console支持,Qt的各模块
CONFIG += console c++11 network
CONFIG -= qt
可以用空格分隔或者”\”来隔行。
目标文件目录
obj文件存放的目录,可以绝对或相对路径
OBJECTS_DIR += ../tmp
工程中包含的头文件
表示本工程中的头文件
HEADERS += \
libcurl/curl/curl.h \
libcurl/curl/curlbuild.h \
libcurl/curl/curlrules.h \
只要qtcreator目录树里add进去了就自动添加
工程中包含的源文件
表示本工程中的源文件
SOURCES += mytest.cpp\
main.cpp
只要qtcreator目录树里add进去了就自动添加
工程中包含的.ui设计文件
FORMS += forms/painter.ui
工程中包含的资源文件
表示本工程包含的资源文件
RESOURCES += qrc/painter.qrc
只要qtcreator目录树里add进去了就自动添加,更改pro文件会同步更新qtcreator里的目录树,但不会影响硬盘上的资源文件
附加头文件包含目录
一般要编译链接第三方库时配置include目录
例如
INCLUDEPATH += ./boost/include\
src/thirdpart/include
INCLUDEPATH += D:/boost/include\
E:/cocos2dx/include
可以用绝对或相对路径
相对路径中./可以省略
路径中不允许出现空格
链接库
对于静态库(.lib, .a)以及动态库.so
LIBS += -LD:/codetest/libcurlcpp/libcurl/lib/ -llibcurl\
-LD:/codetest/libcurlcpp/libcurl/lib/ -lws2_32\
-LD:/codetest/libcurlcpp/libcurl/lib/ -lwldap32\
-LD:/codetest/libcurlcpp/libcurl/lib/ -lopencv\
-LD:/codetest/libcurlcpp/libcurl/lib/ -lzmq
或
LIBS += D:/codetest/libcurlcpp/libcurl/lib/libcurl.lib\
D:/codetest/libcurlcpp/libcurl/lib/ws2_32.lib\
D:/codetest/libcurlcpp/libcurl/lib/wldap32.lib
D:/codetest/libcurlcpp/libcurl/lib/opencv.a
再或者
LIBS +=
PWD/libcurl/lib/ws2_32.lib\
pwd前缀,路径不允许空格
LIBS += somepath 这个可以多行写,也可以用“\”隔行
最后一种只适用于windows静态库
对于linux链接库, 比如opencv项目用make编译出的libopencv.a或者libopencv.so,链接的时候必须写 -lopencv ,写项目的名字而不是库的文件名字
对于动态库dll,必须拷贝到exe执行目录或者在环境变量里配置路径
预编译宏
DEFINES += USE_OPENSSL\
CURL_STATICLIB
类似于vs里面在工程里设置预编译选项
平台相关性处理
根据qmake所运行的平台来使用相应的作用域来进行处理
win32
{
SOURCES += 1.cpp
}
else
{
SOURCES += 2.cpp
}
根据平台进行条件编译
只适用于Windows编译的一些变量
DEF_FILE - 应用程序所要连接的.def文件。
RC_FILE - 应用程序的资源文件。
RES_FILE - 应用程序所要连接的资源文件。
源文件编码方式
CODECFORSRC = GBK
随手记
qt pro 里面变量的引用
VAR = foobar =>当运行qmake时,赋值给变量
{VAR} =>在运行qmake的时候QMake变量的值(相同但是被封闭以与周围文本分开)
$(VAR) =>运行Makefile(而不是qmake)时的环境变量的内容
$$(VAR) =>运行qmake(不是Makefile)时的环境变量的内容
QT .pro文件中的变量说明的更多相关文章
- 【整理】QT .pro文件中的变量说明
注释 以"#"开始的行,直到结束 模板变量 告诉qmake生成哪种makefile TEMPLATE = app 其中 app - 表示该工程建立一个应用程序的makefile.这 ...
- 关于QT中.pro文件中的相对路径
被.pro文件中的相对路径给整糊涂了,仔细研究后,原来.pro文件中有两种相对路径. 一种情况下./表示.pro文件所在的目录 另一种情况下./表示构建生成目录 INCLUDEPATH SOURCE ...
- 在64位的ubuntu 14.04 上开展32位Qt 程序开发环境配置(pro文件中增加 QMAKE_CXXFLAGS += -m32 命令)
为了能中一个系统上开发64或32位C++程序,费了些周折,现在终于能够开始干过了.在此记录此时针对Q5.4版本的32位开发环境配置过程. 1. 下载Qt 5.4 的32位版本,进行安装,安装过程中会发 ...
- qt,pro文件中用于平台区分的写法
qt,pro文件中用于平台区分的写法 切记: 大括号和平台需要在同一行中,否则会失效 unix { TARGET = appname } macx { TARGET = appname2 } win3 ...
- Qt .pro文件 详解
1. TEMPLATE变量TEMPLATE描述了为建立目标文件而采用何种模板,即生成何种形式的Makefile文件.Qmake工具定义了5种模板:1. 应用程序App,为建立一个Qt应用程序创建Mak ...
- Qt Pro文件与Qt模块启用
看qt论坛中经常有人忘记 QT+=network 等语句.随便写写吧,或许对他人有帮助. 一.从哪开始呢 不妨先看个例子吧: #include <QtCore/QCoreApplication& ...
- QT .pro文件 LIBS用法详解
在程序中需要使用到团队其它成员开发的静态库和动态库,起初是知道使用LIBS变量在在.pro文件中指定需要包含的库,但是实际使用的时候却遇到很大麻烦,但其实确实是因为自己看官方文档不太用心造成的. 下面 ...
- 如何在Qt资源文件中包含和释放exe等各种类型文件?
操作系统:Windows 10 X64 企业版 Qt: 5.8.0 QtCreater: 4.2.1 刚刚开始学习Qt,不断遇到困难和挑战,前几天在各个QQ群里询问如何在Qt的资源文件中包含和释放ex ...
- Qt pro文件语法
在Qt下做开发的时候.pro文件就是工程的配置文件,虽然很多时候里面的选项是工具自动生成的,但是难免会需要手动修改的时候,下面就记录一下它的基本语法 #:在.pro文件中表示注释,注释当前行 TEMP ...
随机推荐
- 安卓开发之HttpURLConnection类和Handler类的使用
package com.lidaochen.test; import java.io.ByteArrayOutputStream; import java.io.InputStream; public ...
- 0502 xss 实验
0x01 dvwa xss(reflected) 1.1 Security Level: low use the typical <script>alert(1)</script&g ...
- ONNX预训练模型加载
tvm官网中,对从ONNX预训练模型中加载模型的教程说明 教程来自于:https://docs.tvm.ai/tutorials/frontend/from_onnx.html#sphx-glr-tu ...
- IDEA GIT 忽略文件
1.装插件 .igore 2.新建忽略文件格式 3.编辑忽略后缀文件 可以是文件夹 也可以是 具体文件类型
- dict 字典 函数值应用
函数 说明 D代表字典对象 D.clear() 清空字典 D.pop(key) 移除键,同时返回此键所对应的值 D.copy() 返回字典D的副本,只复制一层(浅拷贝) D.update(D2) ...
- 用例图,ER图,架构图
用例图 ER图 架构图 注:附上小组画图文档链接 提取码:t7ij v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VM ...
- (十二)A64
一.AC108驱动移植 1.驱动添加 cp r18/lichee/linux-4.4/sound/soc/codecs/ac108.* a64/linux-3.10/sound/soc/codecs/ ...
- Redis5.0.3单机版安装
一.创建redis源码包存放目录 cd /usr/local/ mkdir redis 二.进入创建的目录,下载最新版Redis yum -y install wget wget http://dow ...
- git core.autocrlf配置说明
格式化 格式化是许多开发人员在协作时,特别是在跨平台情况下,遇到的令人头疼的细小问题. 由于编辑器的不同或者Windows程序员在跨平台项目中的文件行尾加入了回车换行符, 一些细微的空格变化会不经意地 ...
- h5 特效
地址:http://www.cnblogs.com/sun927/p/5842852.html 几个别人总结的css3炫酷效果,有需要直接拿来用即可,包括以下几个效果: 1.悬浮时放大 2.悬浮时转一 ...