简述
在使用Qt的时候,在一些大的工程中,常常需要各个模块之间库的调用,这时候就需要对pro文件进行配置,为了使用的方便,对pro常用内容总结整理。必要的进行实例说明与一些开发中的整理
新建立一个Qt的工程,打开pro文件
#-------------------------------------------------
#
# Project created by QtCreator 2017-07-13T22:14:30
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = HelloCSDN
TEMPLATE = app
SOURCES += main.cpp\
hello.cpp
HEADERS += hello.h
FORMS += hello.ui
逐行讲解
QT += core gui
它的作用是指定使用的Qt模块,默认的情况下是包含core和gui两部分的(上面的就是默认生成的)core基础代码模块gui是图形界面库,这样可以确保GUI应用程序无需进一步配置就能够构建。
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
比较Qt的版本,如果大于Qt4,就继续添加widgets模块,Qt5把Qt4的gui库提取了出来放在了这个模块里面)
TARGET = HelloCSDN
生成app或者、dll的名字
TEMPLATE = app
当前工程的类型表示生成的是可执行应用程序,也可以是 “TEMPLATE = dll”,模块之间的开发,多选则dll的形式。
SOURCES += main.cpp\
mian.cpp
HEADERS += hello.h
FORMS += hello.ui
分别代表着 头文件,源文件,还有ui文件,在设计师中,设计好后,会直接添加到pro文件中。
为了对代码的统一管理,需要对文件分类存放,
“+=”操作符?向一个变量的值的列表中添加一个值;“‐=”操作符从一个变量的值的列表中移去一个值;
例如src,include,ui_form,resources等,可以这样配置
SOURCES += $$PWD/src/main.cpp\
./src/mian.cpp
HEADERS += hello.h
FORMS += hello.ui
“$$PWD”与“./”的功能是一样的代表的是当前的目录,当前目录就是pro文件所在目录。在当前的目录下面有一个src的文件夹。
在默认的pro文件中继续添加
- RESOURCES
RESOURCES += \
res.qrc
这里面添加的是资源。
- CONFIG
告诉qmake应用程序的配置信息。这个变量可以用来指定是生成debug模式还是release模式,也可以都生成。也可以用来打开编译器警告或者关闭。还可以用来配置要Qt加载库
CONFIG +=debug_and_release
CONFIG(debug,debug|release){
TARGET= hello
DESTDIR= ./debug
}
else{
TARGET= hello
DESTDIR= ./release
}
- DEFINES
qmake添加这个变量的值作为编译器C预处理器宏(-D选项)。
//例如:
DEFINES += USE_MY_STUFF
//然后就可以在代码中使用:
#ifdef USE_MY_STUFF
// TODO
#else
// TODO
#endif
往往可以指定项目的特殊版本(比如:正式版、试用版)、对一些特殊功能模块(比如:加密狗)进行限制等。
DEPENDPATH
工程的依赖路径,当包含文件时使用,(描述了建立应用程序所依赖的其他文件所在的路 径)。
DESTDIR
指定在何处放置目标文件。
可以是dll与可执行文件。在库开发中多用到
DESTDIR = ../../lib
- INCLUDEPATH
指定工程要用到的头文件路径,一般包括用户自定义的头文件路径或没有放入系统头文件路径的头文件路径
//例如:
INCLUDEPATH = c:/msdev/include d:/stl/include
//如果路径包含空格,需要使用引号包含。
这里写代码片
win32:INCLUDEPATH += "C:/mylibs/extra headers"
unix:INCLUDEPATH += "/home/user/extra headers"
- LIBS
//加载动态库文件。如:linux版
liLIBS+=./mitab/libmitab.so
- MOC_DIR
指定moc命令将含Q_OBJECT的头文件转换成标准.h文件的存放目录
MOC_DIR+= ../tmp
- OBJECTS_DIR
指定所有中间文件.o(.obj)放置的目录
OBJECTS_DIR+= ../tmp
- RCC_DIR
指定rcc命令将.qrc文件转换成qrc_*.h文件的存放目录
RCC_DIR+= ../tmp
- UI_DIR
指定uic命令将.ui文件转化成ui_*.h文件的存放的目录
UI_DIR+= forms
- 源文件编码方式
CODECFORSRC= GBK
- RC_ICONS
RC_ICONS = myapp.ico
仅适用于Windows,指定的图标应该包含在一个生成的.rc文件里。
- 平台相关性处理
在进行不同平台开发中需要进行配置,windows平台是win32,Linux平台是unix。Windows和Linux的动态库文件格式是不一样的,一个是lib文件一个是so文件
win32
{
SOURCES+= hello_win.cpp //win平台
}
unix
{
SOURCES += hello_unix.cpp
}
}
接下来,我将会在我的项目中进行应用。敬请关注···