zoukankan      html  css  js  c++  java
  • QT程序如何编译

    如何编译程序?

    使用qmake工程文件(.pro)来进行编译。pro类似VC中dsw,用来列出工程中的元文件。

    有三类主要的工程文件类型:app,lib,subdirs(递归编译用)。可以由TEMPLATE变量指明

    如:TEMPLATE = lib

    如果要是subdirs,可以按照下面的方式:

    TEMPLATE      = subdirs
    SUBDIRS       =  yourdir 斜体表示需要人为指定的   QMAKE会去子目录找对应的.pro文件

    如果没有TEMPLATE条目,则默认为app

    一些app或lib常用的条目包括:

    HEADERS

    SOURCES

    FORMS          指明.ui文件   (uic处理)

    RESOURCES  指明.qrc文件 (rcc处理)

    DEFINES      

    INCLUDEPATH

    LIBS

    CONFIG      指明项目配置和编译选项

    QT              指明项目使用的QT模块(默认模块是 core gui对应QtCore和QtGui两个模块)

    VERSION     指明目标库的版本

    TARGET      指明目标文件或库的基础名字(默认是当前目录)

    DESTDIR     平台独立, WINDOW默认为DEBUG或RELEASE,LINUX默认为当前目录

    DLLDESTDIR  默认同上

    其余意义自明

    CONFIG 选项可取下列值:

    debug

    release   如果debug和release同时存在,debug胜出

    warn_off   默认打开

    qt            应用程序或库使用QT,默认包含

    dll

    staticlib

    plugin        通常是共享库,暗含dll选项

    console      程序需要输出到控制台

    app_bundle  Mac OS X编译需要

    lib_bundle Mac OS X编译需要

    有了.pro 文件后,我们可以通过qmake xx.pro来生成makefile文件

    若想生成VS用的工程可使用,qmake –tp vc xx.pro

    可以用-spec选项来制定平台和编译器组合,可参看mkspecs目录

    .pro文件的语法为:

    variable = values 

    其中values为字符串组合,#标识注释,除了=之外,还支持+=,-=,*=(类似open o_create,没有就添加,有就算了)~=可以用正则表达式来替换值

    我们可以使用$$variable或$${variable}来引用.pro文件中的变量的值,这就允许我们自定义variable,而不是前面描述过的条目。

    $$lower()可用来将字符串转化为小写

    $$system()可以使用外部程序生成的字符串,如$$system(uname -r)

    .pro也支持这种条件语句

    condition{

    then-case

    }else{            #option

    else-case

    }

    这里的condition可以是平台名字,也可以更复杂,如contains(variableA,variableB) 表示A中是否包含B

    如果我们有些共用的.pro文件可以在多个文件中共享,可以使用include() ,但这个pro文件常命名为  pri

    看了上面这么多,可能有人会问,自己手写.pro太麻烦了 ,如果能自动生成就好了

    呵呵,qmake的确也支持,试试  qmake –project ,当然,可以想象自动生成的.pro可能不会满足所有的要求,了解了上面这些内容,我们就可以自己动手了

    更复杂的内容,可参看http://qt-project.org/doc/qt-4.8/qmake-manual.html

  • 相关阅读:
    树莓派使用一些技巧总结
    在Win8上安装pyinstaller打包python成为可执行文件
    DOM对象(js对象)与jq对象
    jQuery初体验
    jQuery的入口函数
    二、Java面向对象(8)_继承思想——继承关系
    二、Java面向对象(7)_封装思想——判断点和圆的关系
    二、Java面向对象(7)_封装思想——构造器和setter方法选用
    二、Java面向对象(7)_封装思想——this关键字
    二、Java面向对象(7)_封装思想——JavaBean规范
  • 原文地址:https://www.cnblogs.com/westwind/p/2481334.html
Copyright © 2011-2022 走看看