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 专心学习. 这里主要来 ...
随机推荐
- [elk]logstash的grok匹配逻辑grok+date+mutate
重点参考: http://blog.csdn.net/qq1032355091/article/details/52953837 logstash的精髓: grok插件原理 date插件原理 kv插件 ...
- Myeclipse中误报错误解决办法
下午写jsp页面的时候,用了一个js文件,拖到MyEclipse下了报错,开始还以为是js文件问题,折腾了半天,后来才知道原来是Myeclipse误报错误.真坑爹啊呀~~ 解决方法: 点击你需要忽略错 ...
- windows下控制台程序更改图标和加载资源文件
1.在空项目的Resouce FIles中右击创建一个新的.rc文件. 2.选中这个.rc文件右击在界面中选择导入icon 3.选中icon,将icon的ID更改为IDC_MAINFRAME. 4.重 ...
- HTML5 的位置
HTML5 的位置 在HTML5COL学院的前面几个章节中我们已经对HTML5 Geolocation API有了一定认识,接下来我们要对位置做些更有意思的处理:看看你与我们HTML5COL学院的办公 ...
- android跨进程通信(IPC)——AIDL
转载请标明出处: http://blog.csdn.net/sinat_15877283/article/details/51026711: 本文出自: [温利东的博客] 近期在看 @任玉刚 大神编写 ...
- Windows下安装Django【转】
Windows下安装Django及WEB服务启动 如果使用的是 Linux 或 Mac OS X ,系统可能已经预装了 Python .在命令提示符下 (或 OS X 的终端中) 输入python ...
- nodejs之express的使用
Express是目前最流行的基于Node.js的Web开发框架,可以快速的搭建一个完整功能的网站. Express框架建立在内置的http模块上,http模块生成服务器的原始代码如下. var htt ...
- python post get请求
安装 Requests pip install requests import requests requests.get('https://github.com/timeline.json') 使用 ...
- 【PM日记】处理事务的逻辑
首先你得时刻搞清楚在你的当下什么类型事情是最重要的,是与人交流,是推进项目,还是需要更加埋头学习知识. 每天你得有个list,可以是上一日遗留下来的部分未完成项,可以是idea收集箱中拿到的新任务,总 ...
- 什么是 Web?
Web这个词刚开始显得有些泛泛,似乎“冲浪”.“网上存在”以及“主页”等等都和它拉上了一些关系. 甚至还有一种“Internet 综合症”的说法,对许多人狂热的上网行为提出了质疑.我们在这里有必要作一 ...