赞
踩
1.配置项
#
开始,到这一行的结束。QT +=
:这个是添加QT项目需要的模块的。
Qt += core gui
表示项目中加入 core gui 模块
QT -=
:若项目中要排除某个模块,也可用QT -=配置项。TEMPLATE =
: 这个配置项确定qmake
为这个应用程序生成哪种makefile 。有下面五种形式可供选择:
app
:建立一个应用程序的makefile,这个是默认值,若模块项未指定,将默认使用此项。
lib
:建立一个库的makefile。
vcapp:建立一个应用程序的VisualStudio项目文件。
vclib:建立一个库的VisualStudio项目文件。
subdirs
:这是一个特殊的模板,可以创建一个可进入特定目录并为一个项目文件生成makefile,此makfile可以调用make。
特殊:
greaterThan(Qt_MAJOR_VERSION, 4): Qt += widgets
:这是个条件执行语句,表示当 Qt 主版本大于 4 时,才加入 widgets 模块。
TARGET =
:这个配置项用来指定最后生成的目标应用程序的名称。CONFIG +=
: 用来告诉qmake关于应用程序的配置信息,使用+=表示在现有的配置上添加,这样会更安全。编译器类型:
release
: 应用程序将以release模式连编。如果“debug”被指定,它将被忽略 。
debug
:应用程序将以debug模式连编。
debug_and_release
项目准备以debug和release两种模式构建。
ordered
使用subdirs
模板时,此选项指定应该按照目录列表的顺序处理它们。
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选项生效。
比如,CONFIG += qt warn_on release 其具体的意义为:
qt
:告诉qmake
此程序是使用qt来连编的。即qmake在连接、为编译添加所需包含路径时会考虑qt的库;
warn_on
:告诉qmake
要将编译器设置为输出警告信息形式;
release
:告诉qmake
应用程序必须被连编为一个可发布的应用程序。开发过程中,也可以使用debug
;
UIC_DIR +=
:用来指定uic命令,将.ui文件转化为ui_*.h文件存放的目录。RCC_DIR +=
:用来指定rcc命令,将.qrc文件转换成qrc_*.h文件存放的目录。MOC_DIR +=
:用来指定moc命令,将含有Q_OBJECT的头文件转换成标准.h文件存放的目录。OBJECTS_DIR +=
:用来指定目标文件obj的存放目录。DEPENDPATH +=
: 用来指定工程的依赖路径。INCLUDEPATH +=
: 用来指定工程所需要的头文件路径。CODECFORSRC +=
: 用来指定源文件的编码格式。
FORMS、HEADERS、SOURCES
记录了项目中包含的源程序文件、头文件和窗体文件(.ui 文件)的名称。这些文件列表是 Qt Creator 自动添加到项目管理文件里面的,用户不需要手动修改。当添加一个文件到项目,或从项目里删除一个文件时,项目管理文件里的条目会自动修改。
FORMS +=
:用来指定工程中的ui文件。两种形式
FORMS =mywidget.ui \
myconfig.ui
FORMS += \
mywidget.ui \
myconfig.ui
HEADERS +=
: 用来指定工程中所包含的头文件。HEADERS += \
dialog.h\
SOURCES +=
:用来指定工程中包含的源文件。SOURCES += \
main.cpp \
dialog.cpp
RESOURCES +=
:用来指定工程中所包含的资源文件。LIBS +=
:用来指定引入的lib文件的路径,一般会在前面加下参数-L,根据不同的版本可以分为两种形式:
Release: LIBS += -L folder Path
//release版本引入的lib文件
Debug: LIBS += -L folder Path
//debug版本引入的lib文件
DEFINES +=
: 用来定义编译选项。(指定预定义预处理器符号)qmake添加该字段指定的全局宏定义。VS中也有类似的全局宏定义,在.dll工程中经常用到,来指定是 dllexport 还是 dllimport .DEFINES += FUNDLL_LIBRARY
在头文件中使用上述宏定义:
#if defined(FUNDLL_LIBRARY)
# define FUNDLLSHARED_EXPORT __declspec(dllexport)
#else
# define FUNDLLSHARED_EXPORT __declspec(dllimport)
#endif
DESTDIR +=
:用来指定目标的生成路径。DLLDESTDIR =
:指定目标库文件放置的目录win32{
}
unix {
}
22.RC_ICONS= myico.ico
:添加应用程序图标。这些文件都使用了相对路径,因为都在项目目录中,所以只写了文件名。
$$PWD
是pro所在目录,是相对目录,建议用相对目录;
1.单个写法
win32:INCLUDEPATH += $$PWD/xxx/win32
win32:LIBS += $$PWD/xxx/win32/xxx.lib
unix:INCLUDEPATH += $$PWD/xxx/unix
unix:LIBS += $$PWD/xxx/unix/xxx.so
linux:INCLUDEPATH += $$PWD/xxx/linux
linux:LIBS += $$PWD/xxx/linux/xxx.so
2.组合写法
win32 {
INCLUDEPATH += $$PWD/xxx/win32
LIBS += $$PWD/xxx/win32/xxx.lib
}
unix {
INCLUDEPATH += $$PWD/xxx/unix
LIBS += $$PWD/xxx/unix/xxx.so
}
linux{
message(linux)
INCLUDEPATH += $$PWD/xxx/unix
LIBS += $$PWD/xxx/unix/xxx.so
}
自定义平台编译选项,以支持多平台编译
DEFINES += ARM
#DEFINES += X86
#DEFINES += LINUX
if(contains(DEFINES,ARM)){
message("arm")
LIBS += $$PWD/xxx.a
LIBS += -L/home/xxx/ -lxxx
}elif(contains(DEFINES,LINUX)){
message("linux")
LIBS += $$PWD/xxx.a
}else{
message("x86")
LIBS += $$PWD/xxx.lib
}
.pro
文件配置实例//添加QT依赖的库 QT += gui QT += core xml network multimedia serialport greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //添加c11配置支持 CONFIG += c++11 //输出文件的名称 TARGET = YouAppName //配置控制台输出 CONFIG += console //输出类型application TEMPLATE = app //源文件 SOURCES += main.cpp \ appconfig.cpp \ opendoorthread.cpp \ TestProject/testform.cpp \ TestProject/common.pb.cpp \ TestProject/goods_req.pb.cpp \ TestProject/goods_resp.pb.cpp //头文件 HEADERS += \ appconfig.h \ opendoorthread.h \ TestProject/testform.h \ TestProject/common.pb.h \ TestProject/goods_req.pb.h \ TestProject/goods_resp.pb.h //配置debug和release CONFIG +=debug_and_release CONFIG(debug,debug|release){ DESTDIR += $$PWD/debug LIBS += -L$$PWD/debug/ -lThorModel LIBS += -L$$PWD/debug/ -lThorUtil LIBS += -L$$PWD/debug/ -lThorBLL LIBS += -L$$PWD/debug/ -lThorHardwareUtil LIBS += -L$$PWD/debug/ -lprotobufd LIBS += -L$$PWD/debug/ -lprotobuf-lited LIBS += -L$$PWD/debug/ -lopencv_core2410d LIBS += -L$$PWD/debug/ -lopencv_highgui2410d LIBS += -L$$PWD/debug/ -lopencv_imgproc2410d LIBS += -L$$PWD/debug/ -lQtActionDetectd }else{ } //需要的头文件 INCLUDEPATH += $$PWD/AllDLL/include INCLUDEPATH += $$PWD/debug/3rdparty/opencv-2.4.10/include \ $$PWD/debug/3rdparty/opencv-2.4.10/include/opencv \ $$PWD/debug/3rdparty/opencv-2.4.10/include/opencv2 //ui FORMS += \ TestProject/testform.ui
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。