当前位置:   article > 正文

Qt中.pro文件配置_qt pro 不同平台配置

qt pro 不同平台配置

1.配置项

  1. 注释:注释是从一行的#开始,到这一行的结束。
  2. QT += :这个是添加QT项目需要的模块的。

Qt += core gui表示项目中加入 core gui 模块

  1. QT -=:若项目中要排除某个模块,也可用QT -=配置项。
  2. 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 模块。

  1. TARGET = :这个配置项用来指定最后生成的目标应用程序的名称。
  2. CONFIG += : 用来告诉qmake关于应用程序的配置信息,使用+=表示在现有的配置上添加,这样会更安全。
    配置变量中可以添加任何东西,但只有下面这些选项可以被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

  1. UIC_DIR += :用来指定uic命令,将.ui文件转化为ui_*.h文件存放的目录。
  2. RCC_DIR += :用来指定rcc命令,将.qrc文件转换成qrc_*.h文件存放的目录。
  3. MOC_DIR += :用来指定moc命令,将含有Q_OBJECT的头文件转换成标准.h文件存放的目录。
  4. OBJECTS_DIR += :用来指定目标文件obj的存放目录。
  5. DEPENDPATH += : 用来指定工程的依赖路径。
  6. INCLUDEPATH += : 用来指定工程所需要的头文件路径。
  7. CODECFORSRC += : 用来指定源文件的编码格式。

FORMS、HEADERS、SOURCES 记录了项目中包含的源程序文件、头文件和窗体文件(.ui 文件)的名称。这些文件列表是 Qt Creator 自动添加到项目管理文件里面的,用户不需要手动修改。当添加一个文件到项目,或从项目里删除一个文件时,项目管理文件里的条目会自动修改。

  1. FORMS += :用来指定工程中的ui文件。
两种形式
FORMS =mywidget.ui \
		myconfig.ui
FORMS += \
      mywidget.ui \
          myconfig.ui
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  1. HEADERS += : 用来指定工程中所包含的头文件。
HEADERS += \
        dialog.h\
        
  • 1
  • 2
  • 3
  1. SOURCES += :用来指定工程中包含的源文件。
SOURCES += \
        main.cpp \
        dialog.cpp
  • 1
  • 2
  • 3
  1. RESOURCES += :用来指定工程中所包含的资源文件。
  2. LIBS += :用来指定引入的lib文件的路径,一般会在前面加下参数-L,根据不同的版本可以分为两种形式:

Release: LIBS += -L folder Path //release版本引入的lib文件
Debug: LIBS += -L folder Path //debug版本引入的lib文件

  1. 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  1. DESTDIR += :用来指定目标的生成路径。
  2. DLLDESTDIR =:指定目标库文件放置的目录
  3. 跨平台处理信息也要写在.pro文件中。 其示例如下:
win32{
}
unix {
}
  • 1
  • 2
  • 3
  • 4

22.RC_ICONS= myico.ico :添加应用程序图标。这些文件都使用了相对路径,因为都在项目目录中,所以只写了文件名。

$$PWD 是pro所在目录,是相对目录,建议用相对目录;

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 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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 
​	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

自定义平台编译选项,以支持多平台编译

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
​	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2..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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/299900
推荐阅读
相关标签
  

闽ICP备14008679号