• Qt工程文件Pro介绍(转)


    转载请注明:http://blog.163.com/hu_cuit/blog/static/122849143201127104232142/

    我也才开始学习QT的菜鸟。但是前几天有同学叫我给他讲一下QT的基本的编程。在过程中我发现了自己的不足,这个要改进。因为我相信我会变成老鸟的。当然我发现同学对QT的工程文件不是很了解,又恰好我以前研究过,看过一些资料,但又想到可以也有和我一样的菜鸟的同志们。所以我打算Share一下我对QT中一些文件的认识。借此希望和大家一起进步,一起变成老鸟!

    1.       *.pro文件

    相信学习过QT的同志们,应该自己写了一个最简单的Hello程序。同时也就开始使用了一个命令:qmake –project 。这个命令是用来生成QT的工程文件(.pro)的,这个文件是用来设置编译或者链接的变量,以便用qmake生成相对应的Makefile文件。这个文件的基本内容就是:

    TEMPLATE = app

    TARGET =

    DEPENDPATH += .

    INCLUDEPATH += .

    # Input

    SOURCES += main.cpp

    下面我们就通过这个文件一步一步认识.pro这个文件:

    TEMPLATE:这个变量是用来定义你的工程将被编译成什么模式。怎么说呢,TEMPLATE=app 表示这个project将被编译成一个应用程序(application)。如果没有这个设置,系统将默认编译为application。当然TEMPLATE还有其他的值:lib(生成库的Makefile) ,subdirs(生成有多级目录管理的Makefile),vcapp,vclib,vcsubdirs(对应Windows 下面VC)。

    TARGET:生成最后目标的名字。

           如果要指定生成目标的路径,这加一个DESTDIR(这个用来指定路径)。

    DEPENDPATH:工程的依赖路径。

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

                  一般是自定义的或者没有放入系统头文件路径的头文件。

    SOURCES:工程需要的源文件。

    介绍到这里也许你对Pro文件就有一个大概的认识了,但是这还不够,这仅仅只是开始。

    比如如何架子资源啊,如何加载语言啊,如何加载ui啊,如何找到图标啊等。

    当然除了上面的QT变量外,还有另外的变量,这里只介绍常用的:

    HEADERS:工程所需要的头文件。

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

    LIBS:加载动态库。LIBS +=./mitab/libmitab.so。

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

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

    win32:RC_FILE:加载要用到rc文件(这个只能用在Windows环境)。可以用来配置图标。

    CONFIG:告诉qmake应用程序的配置信息。这个变量可以用来指定是生成debug模式还是release模式,也可以都生成。也可以用来打开编译器警告或者关闭。还可以用来配置要Qt加载库。

     Eg:

    CONFIG +=debug_and_release

    CONFIG(debug, debug|release){

         TARGET = hello

         DESTDIR = ./debug

    }else{

         TARGET = hello

         DESTDIR = ./release

    }

    如果要加载qt的库和你想要多线程:CONFIG +=qt thread

    如果你要在windows下面运行console:CONFIG +=console

    QT:用来加载指定的库名,如:xml等,当时前提是要在CONFIG中配置qt值(如上)。

       Eg:

              QT += xml network

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

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

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

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

    最后,因为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平台

    }

  • 相关阅读:
    springmvc log4j 配置
    intellij idea maven springmvc 环境搭建
    spring,property not found on type
    intellij idea maven 工程生成可执行的jar
    device eth0 does not seem to be present, delaying initialization
    macos ssh host配置及免密登陆
    centos7 搭建 docker 环境
    通过rest接口获取自增id (twitter snowflake算法)
    微信小程序开发体验
    gitbook 制作 beego 参考手册
  • 原文地址:https://www.cnblogs.com/yanhuiw/p/3865435.html
Copyright © 2020-2023  润新知