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 专心学习. 这里主要来 ...
随机推荐
- C++使用ADO存取图片
在项目中.我们须要把事故简图上传到总server.以便每一个client都能下载或者查看.在网上找了找,向Server2000存储图片代码比較多,从数据库中读取图片并显示也不少,可是把图片从数据 ...
- Binary Tree Postorder Traversal --leetcode
原题链接:https://oj.leetcode.com/problems/binary-tree-postorder-traversal/ 题目大意:后序遍历二叉树 解题思路:后序遍历二叉树的步骤: ...
- EL表达式从数组 Map List集合取值
Jstl是sun的标准taglib库,Jstl是标签库和el语言的结合. el 表达式的隐含对象pageScope,requestScope,sessionScope,applicationScope ...
- IP代理软件
IP代理软件 IP代理软件就是通过第三方网络协议传输数据的一种加密软件:跟VPN,代理服务器原理一样,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通 过这个服务与另一个网络终端(一般为服务器 ...
- AJax与Jsonp跨域访问
一.JavaScript的AJax AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML) 设计AJax使用的一种重要技术 ...
- 最纯粹的直播技术实战02-Camera的处理以及推流
最纯粹的直播技术实战02-Camera的处理以及推流 最新实战教程.Android自己主动化刷量.作弊与防作弊.案例:刷友盟统计.批量注冊苹果帐号 这个系列的文章将会研究最纯粹的Android直播的实 ...
- .Net HttpContext.Current.Request 常用处理方案
1.清理request的请求数据 PropertyInfo isreadonly =typeof(System.Collections.Specialized.NameValueCollection) ...
- CSS水平和垂直居中方案
我们在网页布局的时候,经常会碰到需要居中的情况,那下面就来讲一下有哪几种目前比较常用的居中方案,它们的优点和缺点分别又是什么. 一.水平居中 方法①:(父元素)text-align,(子元素)in ...
- SQL Server Replace函数
REPLACE用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式. 语法REPLACE ( 'string_expression1' , 'string_expression2' ...
- 【BZOJ】3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队(dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=3400 既然是倍数我们转换成mod.. 设状态f[i][j]表示前i头牛modj的方案 那么答案显然是 ...