很多的初学者都没有注意pro 文件的内容 今天简单的介绍一下 这个文件主要内容

TEMPLATE:这个变量是用来定义你的工程将被编译成什么模式。如果没有这个设置,系统将默认编译为application。

TEMPLATE=app表示这个project将被编译成一个应用程序(application)

lib(生成库的Makefile)

subdirs(生成有多级目录管理的Makefile),

vcapp,vclib,vcsubdirs(对应Windows 下面VC)

TEMPLATE = app  //文件中的写法

TARGET:生成最后目标的名字

TARGET = keysiUI

DESTDIR:指定生成目标的路径

DEPENDPATH:工程的依赖路径

INCLUDEPATH:这个用来指定工程要用到的头文件路径

    INCLUDEPATH += /opt/ros/indigo/include
DEPENDPATH += /opt/ros/indigo/include INCLUDEPATH += /usr/include/curl
DEPENDPATH += /usr/include/curl

SOURCES:工程需要的源文件

SOURCES += main.cpp\
        mainwindow.cpp \
    browser.cpp \
    singleton.cpp \

HEADERS:工程所需要的头文件

HEADERS  += mainwindow.h \
include.h \
includeClass.h

FORMS:工程要用到的ui文件(ui文件时用QT设计器生成的)

HEADERS  += mainwindow.h \
include.h \
includeClass.h

LIBS:加载动态库

    LIBS += -l:/opt/ros/indigo/lib/libcv_bridge.so

    LIBS +=  -l:/usr/lib/x86_64-linux-gnu/libboost_thread.so
LIBS += -l:/usr/lib/x86_64-linux-gnu/libpthread.so
INCLUDEPATH += /usr/include
LIBS += -l:/usr/lib/x86_64-linux-gnu/libjsoncpp.so
LIBS += -l:/usr/lib/x86_64-linux-gnu/libcurl.so LIBS += -L/opt/ros/indigo/lib -lroscpp -lrospack -lpthread -lrosconsole -lrosconsole_log4cxx -lrosconsole_backend_interface -lxmlrpcpp -lroscpp_serialization -lrostime -lcpp_common -lroslib -ltf -lyaml-cpp
###-- pm sub -lkdl_conversions
LIBS += -l:/opt/ros/indigo/lib/libroslib.so

TRASHLATIONS:加载要用到的语言翻译*.ts文件

RESOURCES:加载要用到的资源*.qrc文件。

RESOURCES += \
image.qrc

CONFIG:告诉qmake应用程序的配置信息。

这个变量可以用来指定是生成debug模式还是release模式,也可以都生成。

也可以用来打开编译器警告(warn_on输出尽可能多的警告信息)或者

关闭(warn_off -编译器会输出尽可能少的警告信息)。还可以用来配置要Qt加载库。

想要qt+多线程:CONFIG+=qt thread

Eg:

CONFIG+=debug_and_release

CONFIG(debug,debug|release){

TARGET= hello

DESTDIR= ./debug

}else{

TARGET= hello

DESTDIR= ./release

}

CONFIG += c++
CONFIG -= app_bundle

UI_DIR:UIC将ui转化为头文件所存放的目录

RCC_DIR:RCC将qrc文件转化为头文件所存放的目录

MOC_DIR:MOC命令将含Q_OBJECT的头文件转换为标准的头文件存放的目录

OBJECTS_DIR:生成的目标文件存放的目录

DEFINES:应用程序所需的额外的预处理程序定义的列表#在.h文件中就可以使用:#ifdefinexx_xx_xxx

LIBS += -L folderPath  //引入的lib文件的路径  -L:引入路径

Release:LIBS+= -L folderPath // release 版引入的lib文件路径

Debug:LIBS+= -L folderPath // Debug 版引入的lib 文件路径

RC_FILE = xxx.icns   //程序图标

QT是跨平台的,所以我们在不同的平台上用同一个pro文件,这要加入有关平台的信息。

windows是win32,Linux平台是unix。

Eg:

在Windows和Linux的动态库文件格式是不一样的。一个是lib文件一个是so文件

win32:LIBS+= ./mitab/mitab_i.lib

unix:LiBS+= ./mitab/libmitab.so

eg:

win32{

SOURCES+= hello_win.cpp //win平台

}

unix{

SOURCES+= hello_win.cpp //unix/linux平台

}

以通过在其它任何一个变量的变量名前加$$来把这个变量的值分配给当前的变量。例如:

MY_DEFINES= $$DEFINE  #将DEFINE的值分配给MY_DEFINES

QT pro文件详细写法+实例的更多相关文章

  1. QT中.pro文件的写法

    QT中.pro文件的写法   qmake 变量 含义 #xxxx 注释, 从“#”开始,到这一行结束 SOURCES 指定源文件 SOURCES = *.cpp 对于多源文件,可用空格分开 SOURC ...

  2. Qt Pro文件与Qt模块启用

    看qt论坛中经常有人忘记 QT+=network 等语句.随便写写吧,或许对他人有帮助. 一.从哪开始呢 不妨先看个例子吧: #include <QtCore/QCoreApplication& ...

  3. 【整理】QT .pro文件中的变量说明

    注释 以"#"开始的行,直到结束 模板变量 告诉qmake生成哪种makefile TEMPLATE = app 其中 app - 表示该工程建立一个应用程序的makefile.这 ...

  4. QT .pro文件 LIBS用法详解

    在程序中需要使用到团队其它成员开发的静态库和动态库,起初是知道使用LIBS变量在在.pro文件中指定需要包含的库,但是实际使用的时候却遇到很大麻烦,但其实确实是因为自己看官方文档不太用心造成的. 下面 ...

  5. Qt pro文件语法

    在Qt下做开发的时候.pro文件就是工程的配置文件,虽然很多时候里面的选项是工具自动生成的,但是难免会需要手动修改的时候,下面就记录一下它的基本语法 #:在.pro文件中表示注释,注释当前行 TEMP ...

  6. QT pro文件解析

    在QT中使用qmake自动生成pro文件,如果要自己定制工程选项,则需要自行修改pro文件. pro文件有以下关键字:TEMPLATE.TARGET.DESTDIR.DEPENDPATH.INCLUD ...

  7. Qt .pro文件 详解

    1. TEMPLATE变量TEMPLATE描述了为建立目标文件而采用何种模板,即生成何种形式的Makefile文件.Qmake工具定义了5种模板:1. 应用程序App,为建立一个Qt应用程序创建Mak ...

  8. QT .pro文件的学习收获

    1. 载pro文件预定义宏: CONFIG(debug,debug|release){ DEFINES+=__DEBUG__ }else{ DEFINES+=__RELEASE__ macx:DEST ...

  9. QT .pro文件中的变量说明

      https://blog.csdn.net/tanou3212/article/details/79942840 TEMPLATE:定义了工程的编译模式 赋值方式为:TEMPLATE=app (1 ...

随机推荐

  1. cordova启动页面和图标的设置

    一.config.xml配置 在cordova5.0版本以后,需要安装cordova-plugin-splashscreen插件以后才能修改和设置App的启动页面. 安装splashscreen插件: ...

  2. vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效解决方法

    我要实现的功能是在上传文件之前校验是否表格中存在重复的数据,有的话,需要弹窗提示是否覆盖,确认之后继续上传,取消之后,就不再上传. 项目中用的element-ui是V1.4.3 <el-uplo ...

  3. 【代码笔记】Web-HTML-图像

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  4. Apex简介

    Apex特点 Salesforce为开发者提供了Apex语言.它是一种语法上类似于Java的编程语言,有以下特点: 面向对象 完全在云端处理,包括保存.编译.执行 强类型 大小写不敏感(这一点和其他大 ...

  5. JMeter Sampler之BeanShellSampler的使用

    Sampler之BeanShellSampler的使用 by:授客 QQ:1033553122 欢迎加入软件性能测试交流群:7156436 1.  Bean Shell简介 ·         Bea ...

  6. Kotlin入门(20)几种常见的对话框

    提醒对话框手机上的App极大地方便了人们的生活,很多业务只需用户拇指一点即可轻松办理,然而这也带来了一定的风险,因为有时候用户并非真的想这么做,只是不小心点了一下而已,如果App不做任何提示的话,继续 ...

  7. wap2app(六)-- wap2app的原生标题头无法隐藏

    大概有一个星期没有用HBuilder打包,今天更新了HBuilder版本再继续打包,就出现了一系列问题.其中有一个就是打包之后,除首页外,其他页面多出了原生标题,如下图: 查阅资料,打开 sitema ...

  8. (后端)Java跨域过滤器

    private FilterConfig config = null; @Override public void init(FilterConfig config) throws ServletEx ...

  9. (网页)js常见报错之Unexpected token in JSON at position

    出现这个报错提示,根本原因只有一个--json解析异常,所以请大家直接去关注自己json的返回数据注意检查其返回内容和内容的格式是否正确,至于本文血案的导火索是因为json注释滴问题.

  10. git批量修改已经提交的commit的姓名和邮箱

    首先,我们创建change.sh脚本,并根据个人信息复制以下脚本. #!/bin/sh git filter-branch --env-filter ' OLD_EMAIL="填写原来的邮箱 ...