• QT的项目管理文件pro的编写


    QT中,有一个工具qmake可以生成一个makefile文件,它是由项目管理文件pro文件生成而来,pro文件的写法见下表。

    qmake变量

    说明

    举例

    #xxxx

    注释, 从“#”开始,到这一行结束

    #for windows

    TEMPLATE

    模块设置

    TEMPLATE = app

    app(生成应用程序)( 默认、常用)

    lib(生成库文件)(常用)

    vcapp -建立一个应用程序的VisualStudio项目文件

    vclib -建立一个库的VisualStudio项目文件

    subdirs(生成makefile文件编译subdirs指定的子文件夹)(不常用)

    DESTDIR

    指定生成的应用程序放置的目录(建议用相对目录)

    DESTDIR += ../bin

    TARGET

    指定目标文件名(建议跟项目文件同名)

    TARGET = filename

    如果不设置该项目,目标名会被自动设置为跟项目文件一样的名称

    CONFIG

    配置信息

    CONFIG+= qt warn_on release

    编译器标志:

    release - 应用程序将以release模式连编。如果“debug”被指定,它将被忽略。

    debug - 应用程序将以debug模式连编。

    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选项生效。

    QT

    加入库模块

    QT += xml

    UI_DIR

    指定uic命令将.ui文件转化成ui_*.h文件的存放的目录

    UI_DIR += forms

    RCC_DIR

    指定rcc命令将.qrc文件转换成qrc_*.h文件的存放目录

    RCC_DIR += ../tmp

    INCLUDEPATH

    头文件包含路径

    INCLUDEPATH += .

    HEADERS

    指定头文件

    HEADERS = hello.h

    HEADERS += hello.h

    SOURCES

    指定源文件

    SOURCES = *.cpp

    对于多源文件,可用空格分开

    SOURCES = 1.cpp 2.cpp 3.cpp

    或者每一个文件可以被列在一个分开的行里面,通过反斜线另起一行

    SOURCES = hello.cpp
    main.cpp

    一个更冗长的方法是单独地列出每一个文件,就像这样

    SOURCES += hello.cpp
    SOURCES += main.cpp

    FORMS

    工程中包含的.ui设计文件

    FORMS += forms/painter.ui

    RESOURCES

    工程中包含的资源文件

    RESOURCES += qrc/painter.qrc

    OBJECTS_DIR

    指定目标文件(obj)的存放目录

    OBJECTS_DIR += ../tmp

    INTERFACES

    添加界面文件(ui)

    INTERFACES = filename.ui

    MOC_DIR

    指定moc命令将含Q_OBJECT的头文件转换成标准.h文件的存放目录

    MOC_DIR += ../tmp

    DEPENDPATH

    程序编译时依赖的相关路径

    DEPENDPATH += . forms include qrc sources

    CODECFORSRC

    源文件编码方式

    CODECFORSRC = GBK

    win32{…}
    unix{…}

    平台相关性处理

    win32 {
    SOURCES += hello_win.cpp
    }

    LANGUAGE

    编程语言

    LANGUAGE = C++

    exists
    !exists

    !exists:如果一个文件不存在,停止qmake

    !exists( main.cpp ) {
      error( "No main.cpp file found")
    }

    LIBS

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

    LIBS += -L"$(OutDir)"
    -L"$(SolutionDir)lib"
    -lopengl32
    -lglu32
    -lObjectDbAPI
    -lGraphicsLibD

    如下为一个典型的pro文件:

    TEMPLATE = app          //模块设置,生成应用程序

    TARGET = pm            //指定为pm的目标文件

    CONFIG += qt warn_on        //配置信息,应用程序是一个Qt应用程序,编译器会输出尽可能多的警告信息

     

    win32:CONFIG += debug_and_release  //???

    QT += gui              //加入gui库

    QT += core              //加入QT的核心库

    QT += xml               //加入xml库

    QT += network             //加入network库

    QT += sql               //加入sql库


    INCLUDEPATH += ./include        //头文件包含路径

    INCLUDEPATH += ../svglib/include


    INCLUDEPATH += ../../include/algebra

    INCLUDEPATH += ../../include/nas

    INCLUDEPATH += ../../include/planning

    INCLUDEPATH += ../../include/vstability

    INCLUDEPATH += ../../src_qt/cimxml/include


    win32{              //win32平台相关

    CONFIG(debug, debug|release) : LIBS += -L../../../lib -lsvglibd -lalgebrad -lnasd -lplanningd -lvstabilityd -lsvglibd -lcimxmld

    CONFIG(release, debug|release) : LIBS += -L../../../lib -lsvglib -lalgebra -lnas -lplanning -lvstability -lsvglib -lcimxml

    DESTDIR = ../../../bin

    } else {

    LIBS += -L../../../release/lib -lsvglib -lsvglib -lalgebra -lnas -lplanning -lvstability -lsvglib -lcimxml

    DESTDIR = ../../../release/bin

    }


    OBJECTS_DIR = ../../../TEMP/pm    //指定目标文件(.obj)的存放目录

    MOC_DIR = moc          //指定moc命令将含Q_OBJECT的头文件转换成呢个标准.h文件的存放目录

    UI_DIR = ui             //指定uic命令将.ui文件转化成ui_*.h文件存放目录

    RCC_DIR = rcc           //指定rcc命令将.qrc文件转换成qrc_*.h文件的


    #Header files

    HEADERS += include/pm_managedialog.h   //指定头文件

    HEADERS += include/pm_table_base.h

     


    #Source files          //指定源文件

    SOURCES += main.cpp

    SOURCES += source/pm_managedialog.cpp

    SOURCES += source/pm_table_base.cpp


    #Forms          //工程中包含的.ui设计文件

    FORMS += ui/pm_managedialog.ui

    FORMS += ui/pm_busbarsectiondialog.ui


    #Resource file(s)       //工程中包含的资源文件

    RESOURCES += pm.qrc


    win32:RC_FILE = pm.rc

     

    工程项目中如果头文件或者实现文件或者UI文件有变化,应修改对应的 HEADERSOURCESFORMS部分。

    要从pro文件生成VC工程文件,需在d:cimpowersrcsrc_qt4目录下执行如下命令:qmake -t vcapp -o ./pm/pm.vcproj ./pm/pm.pro

    可以调用vcprojeditorVC工程文件进行处理,运行vcprojeditor程序修改VC工程文件,程序配置如下:

     

    点击“批量修改”按钮,完成后退出即可。

  • 相关阅读:
    script 标签的defer,async的作用,及拓展浏览器多线程,DOMContentLoaded
    vuex基本熟悉与使用
    关于h5屏幕适配
    react-router4.0的使用
    使用gulp 合并压缩打包,实时监控文件,实现本地server
    组件之间的通讯:vuex状态管理,state,getters,mutations,actons的简单使用(一)
    vue怎么样创建组件呢??
    基于ionic框架封装一个图片轮播指令的几点
    使用php在服务器端生成图文验证码(二)
    字符串与对象的相互转化
  • 原文地址:https://www.cnblogs.com/SamRichard/p/3530640.html
Copyright © 2020-2023  润新知