QT .pro文件的学习收获
1. 载pro文件预定义宏:
CONFIG(debug,debug|release){
DEFINES+=__DEBUG__
}else{
DEFINES+=__RELEASE__
macx:DESTDIR=$$PWD/../../Setup/MacOS/XXX.app/Contents
macx:QMAKE_POST_LINK+=install_name_tool-change $(QTDIR)/src path @executable_path/ dest path $(DESTDIR)/ file &&\
install_name_tool-change $(QTDIR)/src path @executable_path/ dest path $(DESTDIR)/ file &&\
}
DEFINES 预定于宏,DESTDIR编译完成后,文件输出的位置,QMAKE_POST_LINK 编译完成后执行的操作。 qt程序载mac平台的发布:
假设QT的app程序结构如下:
XXX.app
Contents
MacOS
Labrary
Frameworks
PlugIn
qt.config 发布的步骤:
1. 首先将Labrary 和MacOS中所有二进制文件中依赖的qt的frameworks(QtCore、QtGui、QtPrintSupport、QtWidgets)放在Frameworks中;
2. 将平台相关的插件(libqcocoa.dylib(只用你的程序使用cocoa的东西好像就需要这个插件)、libqico.dylib(如果你的程序使用了图标这个插
件是必须的))放在PlugIn目录中;
3. qt.conf中写入插件需要目录:
[Paths]
PlugIns += plugIns4.使用otool -l工具查看所有的二进制文件,看是否依赖QT的frameworks,如果依赖,则使用inatall_name_tool工具修改依赖的frameworks的路径,
修改的方法如下:
macx:QMAKE_POST_LINK+=install_name_tool-change$(QTDIR)/lib/QtWidgets.framework/Versions/5/QtWidgets \
@executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets \
$(DESTDIR)/XXX.app/Contents/MacOS/XXX && \
install_name_tool-change$(QTDIR)/lib/QtGui.framework/Versions/5/QtGui \
@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui \
$(DESTDIR)/XXX.app/Contents/MacOS/XXX&&\ 5. 使用install_name_tool工具修改QtCore、QtGui、QtPrintSupport、QtWidgets 中的依赖的其他的framework的路径(例如QtGui是依赖QtCore的)
修改完后QtGui的截图如下:
修改完QtWidgets的截图如下:修改完QtPrintSupport的截图如下:
修改完的libqcocoa.dylib的如图所示:注意:为了使修改比较简单,plugIn的上级目录就是Contents,这样所有的路径都向上翻一个路径就可以了,PlugIn下的目录如下:
platforms文件中存放的是libqcocoa.dylib的软连接文件。同样imageformats中存放的也是libqico.dylib的软连接文件。
6. 这些步骤完成后,将mac系统上的qt的安装目录重命名,然后测试,看是否成功,如果不成功,使用控制台启动xxx.app/Contents/xxx
看出错的原因,改正错误。
7. 一切都好了以后,打包发布。
QT .pro文件的学习收获的更多相关文章
- Qt Pro文件与Qt模块启用
看qt论坛中经常有人忘记 QT+=network 等语句.随便写写吧,或许对他人有帮助. 一.从哪开始呢 不妨先看个例子吧: #include <QtCore/QCoreApplication& ...
- QT pro文件解析
在QT中使用qmake自动生成pro文件,如果要自己定制工程选项,则需要自行修改pro文件. pro文件有以下关键字:TEMPLATE.TARGET.DESTDIR.DEPENDPATH.INCLUD ...
- 【整理】QT .pro文件中的变量说明
注释 以"#"开始的行,直到结束 模板变量 告诉qmake生成哪种makefile TEMPLATE = app 其中 app - 表示该工程建立一个应用程序的makefile.这 ...
- QT pro文件详细写法+实例
很多的初学者都没有注意pro 文件的内容 今天简单的介绍一下 这个文件主要内容 TEMPLATE:这个变量是用来定义你的工程将被编译成什么模式.如果没有这个设置,系统将默认编译为application ...
- Qt .pro文件 详解
1. TEMPLATE变量TEMPLATE描述了为建立目标文件而采用何种模板,即生成何种形式的Makefile文件.Qmake工具定义了5种模板:1. 应用程序App,为建立一个Qt应用程序创建Mak ...
- QT .pro文件 LIBS用法详解
在程序中需要使用到团队其它成员开发的静态库和动态库,起初是知道使用LIBS变量在在.pro文件中指定需要包含的库,但是实际使用的时候却遇到很大麻烦,但其实确实是因为自己看官方文档不太用心造成的. 下面 ...
- Qt pro文件语法
在Qt下做开发的时候.pro文件就是工程的配置文件,虽然很多时候里面的选项是工具自动生成的,但是难免会需要手动修改的时候,下面就记录一下它的基本语法 #:在.pro文件中表示注释,注释当前行 TEMP ...
- QT .pro文件中的变量说明
https://blog.csdn.net/tanou3212/article/details/79942840 TEMPLATE:定义了工程的编译模式 赋值方式为:TEMPLATE=app (1 ...
- Qt .pro文件详解
在我们创建Qt工程项目时,Qt Creator总会创建一个.pro文件,我们称.pro文件为Qt的工程管理文件.一个工程项目可以包含一个或多个.pro文件.理解和掌握pro文件的用法,将有利于Qt开发 ...
随机推荐
- Android 性能优化(8)网络优化( 4)Optimizing App-Initiated Network Use
Optimizing App-Initiated Network Use This lesson teaches you to Batch and Schedule Network Requests ...
- 279 Perfect Squares 完美平方数
给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...) 使得他们的和等于 n.你需要让平方数的个数最少.比如 n = 12,返回 3 ,因为 12 = 4 + 4 + 4 : ...
- Kafka~服务端几个常用的命令
在Centos上安装和部署完成kafka之后,我们就可以向服务端推消息和消费它了,今天主要聊几个常用的命令,比建立topic,从broken显示所有topics列表,向broken发消息,从broke ...
- 构建一个.net的干货类库,以便于快速的开发 - 加密
在开发程序的时候,加密是一个程序一个必须的功能,基本上任何程序都会用到加密,而不同的加密方式又适应不同需求,有些加密是不可逆的,最常见是用于用户密码的加密,因为很多时候程序里面不该显示出用户的明文密码 ...
- [ SDOI 2006 ] 仓库管理员的烦恼
\(\\\) Description 有 \(n\) 种货物和 \(n\) 个仓库,开始第 \(i\) 个仓库里有 \(a_{ij}\) 个第 \(j\) 种货物. 现在要让每种货物都只放到一个仓库里 ...
- sublime 设置浏览器
方法一: 1.安装sidebarenhancements插件 ctrl+shift+p —> Install Package —> 找到SideBarEnhancements 2.配置预览 ...
- 在linux下运行mongodb
一>下载 1.去mongodb官网下拉框中找到 linux =>RHEL 6 => Package Manager: 2.Instructions for installing wi ...
- DIV水平 垂直居中CSS
/*实现一.原理:要让div等块级元素水平和垂直居中,必需知道该div等块级元素的宽度和高度,然后设置位置为绝对位置,距离页面窗口左边框和上边框的距离设置为50%,这个50%就是指页面窗口的宽度和高度 ...
- Lazarus 字符集转换 Utf8ToAnsi,UTF8ToWinCP,UTF8ToSys,UTF8ToConsole
由于Lazarus从1.2版开始默认字符集就是UTF8,如果要转到系统正常显示或文本保存,就必须对字符集进行转换.Lazarus提供了很多函数.如题. 那么这里面有什么关系呢? UTF8ToSys 需 ...
- HTML <section> 标签
实例 文档中的区段,解释了 PRC: <section> <h1>PRC</h1> <p>The People's Republic of Ch ...