qt中xxx.pro学习

1.判断是否有该模块,有则编译,无则忽略

qtHaveModule(webengine) {

    SUBDIRS += \
        webview
}

2.指定依赖关系

examples.depends = tools support skins qmlexport

3.使用  DEFINES 宏定义项目全局开关

4.指定生成路径:

DESTDIR =  $$PWD/bin/  #指定编译后可执行文件生成的地方
RCC_DIR = $$PWD/target/rcc_target
MOC_DIR =$$PWD/target/moc_target
OBJECTS_DIR = $$PWD/target

5.编译前拷贝文件

win32 {

    src_dir = $$PWD\docs\*.*
    CONFIG(debug, debug|release) {
        dst_dir = $$PWD\\bin\\
    } else {
        dst_dir = $$PWD\\bin\\
    }

    # dst_dir 最后的 \\ 是必须的,用来标示 xcopy 到一个文件夹,若不存在,创建之

    # Replace slashes in paths with backslashes for Windows
    src_dir ~= s,/,\\,g
    dst_dir ~= s,/,\\,g

    exists($$dst_dir):system(xcopy $$src_dir $$dst_dir /y /e)

}

6.windows以管理员运行:

QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\" #以管理员运行

7.编译前和编译后执行(windows下不用make install)

#该行会在:G:/Qt/5.15.2/mingw81_64/qml/  创建com/org/example/io目录
uri = com.org.example.io

#CONFIG += qmltypes
#QML_IMPORT_NAME = com.mycompany.messaging
#QML_IMPORT_MAJOR_VERSION = 1

DISTFILES = qmldir

#QMAKE_POST_LINK 表示编译后执行内容
#QMAKE_PRE_LINK 表示编译前执行内容

#目标目录
installPath = $$[QT_INSTALL_QML]/$$replace(uri, \., /)/

#设置可执行文件或库文件的输出目录
DESTDIR = $$installPath

!equals(_PRO_FILE_PWD_, $$OUT_PWD) {


    #设置把qmldir文件拷贝到文件编译输出目录
    copy_qmldir.target = $$installPath
    copy_qmldir.depends = $$_PRO_FILE_PWD_/qmldir
    copy_qmldir.commands = $(COPY_FILE) "$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)" "$$replace(copy_qmldir.target, /, $$QMAKE_DIR_SEP)"
    QMAKE_EXTRA_TARGETS += copy_qmldir
    PRE_TARGETDEPS += $$copy_qmldir.target



#    cop_qmldir_system_commands= $(COPY_FILE) "$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)" "$$replace(installPath, /, $$QMAKE_DIR_SEP)"
#    message($$cop_qmldir_system_commands)
     #判断要安装的目录是否存在
#    !exists($installPath) {
         #不存在,则创建该目录
#        create_dir_command = $(MKDIR)  "$$replace(installPath, /, $$QMAKE_DIR_SEP)"
         #编译前执行
#        QMAKE_PRE_LINK = $$create_dir_command

#        message("install path is not exists.....")
#    }
     #编译后执行
#    QMAKE_POST_LINK = $$cop_qmldir_system_commands

}
#DISTFILES = qmldir

上图示例在项目编译完成后执行信息如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liu-Eleven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值