Qt 如何自动安装常用依赖?
使用 *.prf 文件自动安装依赖
在 Qt\Qt5.9.5\5.9.5\msvc2015\mkspecs\features
路径中添加 auto_install.prf
文件
然后在程序配置文件(*.pro)中添加
CONFIG += auto_install
程序编译完成时,则会自动执行 auto_install.prf
文件中的内容,这样避免了每次都要写配置文件的麻烦
auto_install.prf
文件内容如下:
# 自动复制依赖
CONFIG(debug,debug | release){
QT_BIN_FILES += \
$$[QT_INSTALL_BINS]/Qt5Cored.dll \
$$[QT_INSTALL_BINS]/Qt5Guid.dll \
$$[QT_INSTALL_BINS]/Qt5Widgetsd.dll \
$$[QT_INSTALL_BINS]/Qt5Networkd.dll \
$$[QT_INSTALL_BINS]/Qt5Sqld.dll
QT_BIN_PATH = $$OUT_PWD/debug/
win32 {
for(var, QT_BIN_FILES) {
QMAKE_POST_LINK += $$quote(cmd /c copy /y $$shell_path($$var) $$shell_path($$QT_BIN_PATH) $$escape_expand(\\n\\t))
}
}
unix {
for(var, QT_BIN_FILES) {
QMAKE_POST_LINK += $$quote(cp $$var $$QT_BIN_PATH $$escape_expand(\\n\\t))
}
}
QT_PLATFORMS_BIN_FILES += \
$$[QT_INSTALL_PLUGINS]/platforms/qwindowsd.dll
QT_PLATFORMS_BIN_PATH = $$OUT_PWD/debug/platforms/
win32 {
for(var, QT_PLATFORMS_BIN_FILES) {
QMAKE_POST_LINK += $$quote(cmd /c xcopy /y $$shell_path($$var) $$shell_path($$QT_PLATFORMS_BIN_PATH) $$escape_expand(\\n\\t))
}
}
unix {
for(var, QT_PLATFORMS_BIN_FILES) {
QMAKE_POST_LINK += $$quote(cp $$var $$QT_PLATFORMS_BIN_PATH $$escape_expand(\\n\\t))
}
}
}else{
QT_BIN_FILES += \
$$[QT_INSTALL_BINS]/Qt5Core.dll \
$$[QT_INSTALL_BINS]/Qt5Gui.dll \
$$[QT_INSTALL_BINS]/Qt5Widgets.dll \
$$[QT_INSTALL_BINS]/Qt5Network.dll \
$$[QT_INSTALL_BINS]/Qt5Sql.dll
QT_BIN_PATH = $$OUT_PWD/release/
win32 {
for(var, QT_BIN_FILES) {
QMAKE_POST_LINK += $$quote(cmd /c copy /y $$shell_path($$var) $$shell_path($$QT_BIN_PATH) $$escape_expand(\\n\\t))
}
}
unix {
for(var, QT_BIN_FILES) {
QMAKE_POST_LINK += $$quote(cp $$var $$QT_BIN_PATH $$escape_expand(\\n\\t))
}
}
QT_PLATFORMS_BIN_FILES += \
$$[QT_INSTALL_PLUGINS]/platforms/qwindows.dll
QT_PLATFORMS_BIN_PATH = $$OUT_PWD/release/platforms/
win32 {
for(var, QT_PLATFORMS_BIN_FILES) {
QMAKE_POST_LINK += $$quote(cmd /c xcopy /y $$shell_path($$var) $$shell_path($$QT_PLATFORMS_BIN_PATH) $$escape_expand(\\n\\t))
}
}
unix {
for(var, QT_PLATFORMS_BIN_FILES) {
QMAKE_POST_LINK += $$quote(cp $$var $$QT_PLATFORMS_BIN_PATH $$escape_expand(\\n\\t))
}
}
}
#export(QMAKE_POST_LINK)
jom.exe INSTALL
CONFIG(debug,debug | release){
QT_CORE.path = $$OUT_PWD/debug/
QT_CORE.files = $$[QT_INSTALL_BINS]/Qt5Cored.dll
QT_GUI.path = $$OUT_PWD/debug/
QT_GUI.files = $$[QT_INSTALL_BINS]/Qt5Guid.dll
QT_WIDGETS.path = $$OUT_PWD/debug/
QT_WIDGETS.files = $$[QT_INSTALL_BINS]/Qt5Widgetsd.dll
QT_NETWORK.path = $$OUT_PWD/debug/
QT_NETWORK.files = $$[QT_INSTALL_BINS]/Qt5Networkd.dll
QT_PLATFORMS.path = $$OUT_PWD/debug/platforms/
QT_PLATFORMS.files = $$[QT_INSTALL_PLUGINS]/platforms/qwindowsd.dll
}else{
QT_CORE.path = $$OUT_PWD/release/
QT_CORE.files = $$[QT_INSTALL_BINS]/Qt5Core.dll
QT_GUI.path = $$OUT_PWD/release/
QT_GUI.files = $$[QT_INSTALL_BINS]/Qt5Gui.dll
QT_WIDGETS.path = $$OUT_PWD/release/
QT_WIDGETS.files = $$[QT_INSTALL_BINS]/Qt5Widgets.dll
QT_NETWORK.path = $$OUT_PWD/release/
QT_NETWORK.files = $$[QT_INSTALL_BINS]/Qt5Networkd.dll
QT_PLATFORMS.path = $$OUT_PWD/release/platforms/
QT_PLATFORMS.files = $$[QT_INSTALL_PLUGINS]/platforms/qwindows.dll
}
INSTALLS += QT_CORE QT_GUI QT_WIDGETS QT_NETWORK QT_PLATFORMS
win32 {
CONFIG(debug,debug | release){
QT_BIN_FILES += \
$$[QT_INSTALL_BINS]/Qt5Cored.dll \
$$[QT_INSTALL_BINS]/Qt5Guid.dll \
$$[QT_INSTALL_BINS]/Qt5Widgetsd.dll \
$$[QT_INSTALL_BINS]/Qt5Networkd.dll
QT_BIN_PATH = $$OUT_PWD/debug/
for(var, QT_BIN_FILES) {
QMAKE_POST_LINK += $$quote(cmd /c copy /y $$shell_path($$var) $$shell_path($$QT_BIN_PATH) $$escape_expand(\\n\\t))
}
QT_PLATFORMS_BIN_FILES += \
$$[QT_INSTALL_PLUGINS]/platforms/qwindowsd.dll
QT_PLATFORMS_BIN_PATH = $$OUT_PWD/debug/platforms/
for(var, QT_PLATFORMS_BIN_FILES) {
QMAKE_POST_LINK += $$quote(cmd /c xcopy /y $$shell_path($$var) $$shell_path($$QT_PLATFORMS_BIN_PATH) $$escape_expand(\\n\\t))
}
}else{
QT_BIN_FILES += \
$$[QT_INSTALL_BINS]/Qt5Core.dll \
$$[QT_INSTALL_BINS]/Qt5Gui.dll \
$$[QT_INSTALL_BINS]/Qt5Widgets.dll \
$$[QT_INSTALL_BINS]/Qt5Network.dll
QT_BIN_PATH = $$OUT_PWD/release
for(var, QT_BIN_FILES) {
QMAKE_POST_LINK += $$quote(cmd /c copy /y $$shell_path($$var) $$shell_path($$QT_BIN_PATH) $$escape_expand(\\n\\t))
}
QT_PLATFORMS_BIN_FILES += \
$$[QT_INSTALL_PLUGINS]/platforms/qwindows.dll
QT_PLATFORMS_BIN_PATH = $$OUT_PWD/release/platforms
for(var, QT_PLATFORMS_BIN_FILES) {
QMAKE_POST_LINK += $$quote(cmd /c xcopy /y $$shell_path($$var) $$shell_path($$QT_PLATFORMS_BIN_PATH) $$escape_expand(\\n\\t))
}
}
# 详细使用请查看 qt file_copies.prf 文件
#CONFIG *= file_copies
#创建名称以描述要复制的文件:
#COPIES += DocCopyDemo
#在.files成员中列出要复制的文件:
#DocCopyDemo.files = $$files($$PWD/*.pro)
#在.path成员中指定目标路径:
#DocCopyDemo.path = $$OUT_PWD/debug
#(可选)指定要从源路径修剪的基本路径:
#DocCopyDemo.base = $$PWD/
Qt 如何自动安装常用依赖?的更多相关文章
- Python Error: “ImportError: No module named six”,用自动安装解决依赖问题
在初次运行带有matplotlib包的程序时,被告知了缺少模块(如标题所示).搜索调查后发现在自己安装的python中确实缺少此安装包,接下来,进行了下载.安装.运行,又少了一个模块,再下载.再运行, ...
- 【Azure 批处理 Azure Batch】在Azure Batch中如何通过开始任务自动安装第三方依赖的一些软件(Windows环境)
准备条件 Azure Batch账号 需要安装的软件包(zip)文件,里面包含该软件的msi安装文件, 此处使用python.msi 版本 3.3.3 作为例子(https://www.python. ...
- Windows批处理:自动部署常用软件(静默安装)
一.简介 最近一直在测试使用域组策略自动部署软件,效果并不理想.首先,主机必须加入域才能让策略生效.其实是Windows Server 2012 R2只支持.msi格式的安装包,所以部署前需将软件重新 ...
- ubuntu桌面安装常用软件&及常见问题
自己从windows转向ubuntu桌面开发,根据需求安装以下文件: ubuntu 桌面版下载:http://www.ubuntu.org.cn/download/desktop 有的公司设置静态ip ...
- centos 下 Qt Creator 的安装使用
centos 下 Qt Creator 的安装使用 Qt 以其开源,免费,完全面向对象(很容易扩展),允许真正的组件编程以及可移植跨平台等诸多优势得到越来越多的开发人员的青睐.Qt Creator 是 ...
- webpack 介绍 & 安装 & 常用命令
webpack 介绍 & 安装 & 常用命令 webpack系列目录 webpack 系列 一:模块系统的演进 webpack 系列 二:webpack 介绍&安装 webpa ...
- Linux中yum手动安装、手动建立仓库文件夹关联实现关联包自动安装、yum相关命令使用
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指 ...
- PXE+kickstart自动安装ubuntu14.04
本文参考了诸多文章,先感谢这些文章的作者. 使用pxe安装系统需要安装dhcp,tftp,http等服务(当然也可以使用其他文件共享方式比如nfs,ftp). 实验环境: 1. vmware 12 2 ...
- 如何正确的使用Ubuntu以及安装常用的渗透工具集.
文章来源i春秋 入坑Ubuntu半年多了 记得一开始学的时候基本一星期重装三四次=-= 尴尬了 觉得自己差不多可以的时候 就吧Windows10干掉了 c盘装Ubuntu 专心学习. 这里主要来 ...
随机推荐
- Atitit.jpg png格式差别以及解决jpg图片不显示的问题
Atitit.模板引擎原理以及常见模板技术 1. Asp Php jsp smarty模板1 1.1. 模板引擎基本原理1 1.2. 调试模式原理2 2. Attilax总结的模板引擎原理2 3. 支 ...
- java 容器结构
先来看下层次关系. 如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口 Collection(接口)├──List(接口)│ ├──LinkedList(实现类)│ ├ ...
- python学习之os.walk()
os.walk(top,topdown = True,onerror = None,followlinks = False) 参数 top -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 ...
- PHP7:10件事情你需要知道的
你是一个Web开发人员或网站所有者?做你的网站上的PHP-enabledCMS如WordPress,Drupal的是,Joomla或Magento的运行?然后,我对你的好消息:新的PHP 7的功能完整 ...
- 字符串操作:int 转 string
strstream ss; string ch; ss<<i; ss>>ch;
- curl编译
首先下载并解压: wget http://curl.haxx.se/download/curl-7.37.1.tar.gz tar -xzvf curl-7.37.1.tar.gz 编译安装: cd ...
- js中对小数取整
js中对小数取整的函数,需要的朋友可以参考下. 1.丢弃小数部分,保留整数部分 js:parseInt(7/2) 2.向上取整,有小数就整数部分加1 js: Math.ceil(7/2) 3,四舍 ...
- file相关的操作,(md5,word转html,复制,删除等)
package cn.edu.hbcf.common.utils; import java.io.BufferedOutputStream; import java.io.ByteArrayOutpu ...
- Missing artifact javax.transaction:jta:jar:1.0.1B解决办法
maven库中缺少了这个jar,需要把这个jar安装到本地库中去. 1.下载包含此jar的zip包,地址: http://download.csdn.net/detail/spring123tt/68 ...
- 一行python打印乘法表
一行代码打印乘法表 >>> print '\n'.join([' '.join(['%s*%s=%-2s' %(y,x,x*y) for y in range(1,x+1)]) fo ...