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 += plugIns 4.使用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文件的学习收获的更多相关文章

  1. Qt Pro文件与Qt模块启用

    看qt论坛中经常有人忘记 QT+=network 等语句.随便写写吧,或许对他人有帮助. 一.从哪开始呢 不妨先看个例子吧: #include <QtCore/QCoreApplication& ...

  2. QT pro文件解析

    在QT中使用qmake自动生成pro文件,如果要自己定制工程选项,则需要自行修改pro文件. pro文件有以下关键字:TEMPLATE.TARGET.DESTDIR.DEPENDPATH.INCLUD ...

  3. 【整理】QT .pro文件中的变量说明

    注释 以"#"开始的行,直到结束 模板变量 告诉qmake生成哪种makefile TEMPLATE = app 其中 app - 表示该工程建立一个应用程序的makefile.这 ...

  4. QT pro文件详细写法+实例

    很多的初学者都没有注意pro 文件的内容 今天简单的介绍一下 这个文件主要内容 TEMPLATE:这个变量是用来定义你的工程将被编译成什么模式.如果没有这个设置,系统将默认编译为application ...

  5. Qt .pro文件 详解

    1. TEMPLATE变量TEMPLATE描述了为建立目标文件而采用何种模板,即生成何种形式的Makefile文件.Qmake工具定义了5种模板:1. 应用程序App,为建立一个Qt应用程序创建Mak ...

  6. QT .pro文件 LIBS用法详解

    在程序中需要使用到团队其它成员开发的静态库和动态库,起初是知道使用LIBS变量在在.pro文件中指定需要包含的库,但是实际使用的时候却遇到很大麻烦,但其实确实是因为自己看官方文档不太用心造成的. 下面 ...

  7. Qt pro文件语法

    在Qt下做开发的时候.pro文件就是工程的配置文件,虽然很多时候里面的选项是工具自动生成的,但是难免会需要手动修改的时候,下面就记录一下它的基本语法 #:在.pro文件中表示注释,注释当前行 TEMP ...

  8. QT .pro文件中的变量说明

      https://blog.csdn.net/tanou3212/article/details/79942840 TEMPLATE:定义了工程的编译模式 赋值方式为:TEMPLATE=app (1 ...

  9. Qt .pro文件详解

    在我们创建Qt工程项目时,Qt Creator总会创建一个.pro文件,我们称.pro文件为Qt的工程管理文件.一个工程项目可以包含一个或多个.pro文件.理解和掌握pro文件的用法,将有利于Qt开发 ...

随机推荐

  1. self , static 都是何方神圣?

    前言: php中 this  用于代指 对象, 而代指类的却有3个:self , static , parent self , static , parrent 既然都能代指类,那么他们之间又有哪些区 ...

  2. mycat重启报错Failed to connect to the Wrapper at port解决方法

    报错信息 ERROR | wrapper | 2018/05/11 14:01:55 | Startup failed: Timed out waiting for a signal from the ...

  3. O(1)的快速乘

    那么 有位神仙已经说了O(1)的算法(当然不是我) 这是一种骚操作 直接放代码了啊 inline LL mul(LL a,LL b,LL Mod){ LL lf = a * ( b >> ...

  4. [POI2013]POL-Polarization

    题目描述 Everyone knew it would only be a matter of time. So what? Faced for years on, a peril becomes t ...

  5. .net引用System.Data.SQLite操作SQLite

    之所以要做这个笔记,是因为在.NET中使用System.Data.SQLite的时候,遇到了些问题,这些问题是相对于引用其他dll没有遇到过的,所以作个笔记,记录一下. 简单起见,首先建立一个控制台项 ...

  6. NHibernate3.2学习笔记

    一.开发环境 数据库:SQLServer2008 编译器:VS2010 .Net版本:.Net Framework 4.0 二.涉及第三方程序集 NHibernate.dll:版本3.2 Iesi.C ...

  7. opencv函数之cv.InRange函数

    2018-03-0421:22:46 (1)cv.InRange函数 void cvInRange(//提取图像中在阈值中间的部分 const CvArr* src,//目标图像const CvArr ...

  8. strong,weak, retain, assign的区别@property的参数

    strong,weak, retain, assign的区别@property的参数 先说经验 使用场合 copy:NSString,block, weak:UI控件,代理 strong:一般对象.自 ...

  9. 动软生成器添加Mysql注释

    1.解决没有mysql注释问题 替换原文件下载地址 2.更新Models模板 <#@ template language="c#" HostSpecific="Tr ...

  10. (转) 淘淘商城系列——Redis五种数据类型介绍

    http://blog.csdn.net/yerenyuan_pku/article/details/72855562 Redis支持五种数据类型:string(字符串),hash(哈希),list( ...