zoukankan      html  css  js  c++  java
  • QMake学习

    原文:https://www.cnblogs.com/vkang/articles/10237033.html

    https://www.iteye.com/blog/wan-2004-1258380

    qmake的pro文件中有这个变量QMAKE_EXTRA_TARGETS 这个可以理解为额外编译目标、还有PRE_TARGETDEPS可以理解为预编译目标依赖 ,比如下面这个

    mybuild.target=mybuild  
      
    win32{  
    mybuild.commands=${COPY} ../project/libname-mingw.a libname.a  
    }else{  
    mybuild.commands=${COPY} ../project/libname-gcc.a libname.a  
    }  
      
    QMAKE_EXTRA_TARGETS += mybuild  
      
    PRE_TARGETDEPS += mybuild 

    像上面这个就是定义了一个在Makefile中的一个编译目标mybuild

        然后make的时候,在我们编译目标文件之前就执行mybuild。这样就保证了编译时候库文件就拷贝到编译目录里面。

    不需要在QCreator里面设置编译步骤去拷贝了,其commands 里面还可以直接调用本地脚本执行更多的方法

    TARGET:
    编译生成的目标文件名字
    ex:
    TARGET = test

    DESTDIR
    生成的文件目录
    ex:
    DESTDIR = /home/linux/Vkang/tftproot

    QMAKE_CXXFLAGS
    编译器选项
    ex:
    QMAKE_CXXFLAGS += -Wno-psabi

    DEFINES:
    编译添加宏
    ex:
    DEFINES += QT_DEPRECATED_WARNINGS

    contains:
    包含某个字符:
    ex:
    contains(CONFIG,ARM)

    {

    functions

    }

    message:
    打印信息:
    ex:
    message("****** build for ARM - Release ******")

    PRE_TARGETDEPS:
    工程构建前的依赖
    ex:PRE_TARGETDEPS += buildnumber version.h

    QMAKE_EXTRA_TARGETS:
    工程运行前执行的其他命令:
    ex:
    QMAKE_EXTRA_TARGETS += updateBuildNumber updateVersion

    {
    PRE_TARGETDEPS和QMAKE_EXTRA_TARGETS结合使用,在构建工程前执行的指令

    updateBuildNumber.target=buildnumber //target名字
    updateBuildNumber.depends=FORCE//target依赖
    updateBuildNumber.commands=$$PWD/script/updatebuildnumber.sh $$PWD //target执行的指令

    updateVersion.target=version.h//target名字
    updateVersion.depends=buildnumber//target依赖
    updateVersion.commands=$$PWD/script/updateversion.sh $$PWD//target执行的指令

    PRE_TARGETDEPS += buildnumber version.h //工程构建前的依赖 上边的target名字
    QMAKE_EXTRA_TARGETS += updateBuildNumber updateVersion

    工程在构建之前会先执行buildnumber对应的指令,然后在执行version.h对应的指令
    }

    POST_TARGETDEPS :
    工程构建后依赖动作:
    ex:
    copy_deps.target=copy
    copy_deps.depends=FORCE
    copy_deps.command = copy.sh
    POST_TARGETDEPS += copy
    QMAKE_EXTRA_TARGETS += copy_deps

    LIBS:
    工程编译依赖的库:
    ex:
    LIBS += -L/user/lib -lts

    INCLUDEPATH:
    工程编译头文件查找路径
    ex:
    INCLUDEPATH += $$PWD/video


    include():
    此工程包含该pri文件
    ex:
    include($$PWD/video/video.pri)

  • 相关阅读:
    线程池源码解析
    String与常量池
    spring循环依赖
    ConcurrentHashMap源码解析(JDK8)
    原子类源码分析
    web service和ejb的区别
    RPC
    hashcode()和equals()的区别
    关于json
    Lifecycle of jsf
  • 原文地址:https://www.cnblogs.com/xiangtingshen/p/12095404.html
Copyright © 2011-2022 走看看