• QT pro文件详细写法+实例


    很多的初学者都没有注意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
    ###2017-1-18 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++11
    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

  • 相关阅读:
    1.2 软件测试的分类和职业生涯
    1.1:软件测试的发展
    1,select查询详解
    7、网页
    6、开学典礼
    5、边框属性和display
    4、盒子模型和margin、padding
    3、字体、背景、和文本的属性
    2、Css中的样式选择器
    16. C# 对象初始化器
  • 原文地址:https://www.cnblogs.com/wanghuixi/p/9572863.html
Copyright © 2020-2023  润新知