当你用Qt开发好程序后,是不是会很期待将你的成果分享给你的小伙伴

可是Qt的库并不是OS X标配的,所以我们要自己去复制库到app包里,才可以让app在其他未安装Qt的电脑上运行。

比较幸运的是,Qt为我们提供了macdeployqt工具,借助于此,在OS X上发布Qt写的程序几乎是所有平台中最简单的。

注:我电脑配置了Qt的bin环境,所以可以直接使用macdeployqt

如果没配置,可以用绝对路径去找。

macdeployqt在我电脑上的绝对路径是:/Applications/Qt5.4.1/5.4/clang_64/bin/macdeployqt

1.发布widgets程序

1.1:这个比较方便。选择Release模式,编译

1.2:运行macdeployqt

对于我的工程,命令是:

macdeployqt /Users/Jason/Desktop/build-untitled-Desktop_5_4_0_64bit-Release/untitled.app -dmg

然后回车,就打包好了。

之后我们会发现,app目录下多了一个dmg文件

此dmg文件,里面的app就是我们发布的app了。把dmg拷贝给别人,别人就可以直接使用了。

注:如果直接拷贝app文件给别人,别人是无法直接运行的,会有权限问题(要用chmod给可执行文件加上x权限才可以运行)。

而压缩过(zip或者dmg)后,拷贝给别人,别人是可以直接运行,没有权限问题。

注:-dmg的意思就是在拷贝好库后,生成一个dmg文件,可以不加这个参数。

2.发布quick2程序

这个相对麻烦一点

2.1:然后,Release模式,编译

2.2:打开终端,先切换编译的目标目录下

对于我的工程,命令是:

cd /Users/Jason/Desktop/build-untitled-Desktop_5_4_0_64bit-Release

2.3:运行macdeployqt

对于我的工程,命令是:

macdeployqt untitled.app -qmldir=../untitled -dmg

然后回车,就打包好了。

注:和widgets发布程序不同,untitled.app 这个名字,要直接输入,不要写 ./untitled.app 或者是其他的 绝对/相对 路径,不然打包出来的文件无法使用!!会报错!!!

注2:-qmldir=../untitled 的意思就是说在 ../untitled 目录下有qml文件,让macdeployqt去分析它们,把要用的库找过来。

参考:http://blog.csdn.net/wsj18808050/article/details/44223065

Qt for Mac:发布程序(widgets和quick2)的更多相关文章

  1. QT Creater + vs2010 发布程序

    这几天帮同学写了个简单的gui应用,用的qt5.0.2_msvc2010.写的程序需要在一台没有装过vs和qt的机子上运行. 在release下编译运行通过后,把相应的依赖dll加入到exe相同的文件 ...

  2. QT编译发布程序后报错如缺少dll、“应用程序无法正常启动(0xc000007b)”的可能解决方法

    QT编译发布程序后报错如缺少dll.“应用程序无法正常启动(0xc000007b)”的可能解决方法 最近项目要用qt,因为初学没有经验,遇到些小问题常常没什么头绪,也查不到解决方法,刚刚还因为低端错误 ...

  3. Qt之新手打包发布程序

    工具:电脑必备.QT下的windeployqt Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无 ...

  4. 发布Qt Quick桌面应用程序的方法(使得planets在XP上运行)

    发布Qt Quick桌面应用程序的方法 Qt是一款优秀的跨平台开发框架,它可以在桌面.移动平台以及嵌入式平台上运行.目前Qt 5介绍程序发布的文章帖子比较少.大家又非常想要知道如何发布Qt应用程序,于 ...

  5. QT如何发布程序

    QT如何发布程序转载 http://blog.csdn.net/iw1210/article/details/51253458

  6. Qt 打包发布程序

    利用Qt Creator写好程序,选择对应的编译器编译程序. 编译完成会在项目同级目录生成对应的目录来保存编译后的输出. 打包程序就要选择Qt自带的CMD工具,分别有下面几种. 比如,打包VS2017 ...

  7. Qt发布程序

    一.作用 将Qt软件打包发布成绿色exe,在任意非Qt环境下运行 二.找到我们软件所依赖动态库 使用Qt的windeployqt.exe(在Qt安装目录的bin下面找)--! 1.新建文件夹,在里面放 ...

  8. 马上着手开发Mac应用程序

    你是否想要开发 Mac 应用程序却又不知道从哪里入手?本路线图提供了 Mac 应用程序开发的绝佳起点,即使你已经是一个 iOS 开发专家,本路线图对你依然适用.Apple让开发应用程序和提交应用程序到 ...

  9. 将QT开发的界面程序封装成DLL,在VC中成功调用

    最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后再动态调用DLL给出的接口函数,使封装在DLL内部的QT界面跑起来,在网上查了很多资料,今天终于成功了,经验不敢独享,因为CSDN给了我很多 ...

随机推荐

  1. 计算机体系结构-内存调优IPC OOMK

    man ipc [root@server1 proc]# man ipcIPC(2)                     Linux Programmer’s Manual             ...

  2. etrace 跟踪 nginx之HTTP请求流程

    curl 127.0.0.1 | | | \--ngx_epoll_process_events | | | | \--ngx_time_update | | | | | \--ngx_gmtime ...

  3. hadoop小文件合并

    1.背景 在实际项目中,输入数据往往是由许多小文件组成,这里的小文件是指小于HDFS系统Block大小的文件(默认128M), 然而每一个存储在HDFS中的文件.目录和块都映射为一个对象,存储在Nam ...

  4. windows和linux双系统删除linux

    装了Windows和linux双系统的朋友,在后期要删除linux是个比较头痛的问题,因为MBR已经被linux接管,本文的目的是如何在windows 和linux双系统下,简单,完美地卸载linux ...

  5. Java基础知识强化之集合框架笔记28:ArrayList集合练习之去除ArrayList集合中的重复字符串元素(升级)

    1. 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)     要求:不能创建新的集合,就在以前的集合上做. 2. 代码示例之 去除集合中重复元素,不创建新的集合: package ...

  6. css 图片平铺

    背景图尺寸(数值表示方式): #background-size{ background-size:200px 100px; } 背景图尺寸(百分比表示方式): #background-size2{ b ...

  7. 设计模式学习——准备(UML类图)

    前言 其实吧,最早接触UML是源于软件设计师的考试,半路出家实在难为我了.学设计模式总是要画类图的,所以补充UML的类图的知识是很重要滴.第一篇就偷懒一点copy别人的东西了.实话说,我们都是踩在巨人 ...

  8. 什么是php命名空间

    php命名空间是在5.3版本后加入的,命名空间反过来就是空间命名,在这里的空间命名就像window下的文件夹命名,命名空间用关键字namespace来定义.在这里用文件夹举三个例子,比如相对于test ...

  9. 乐视手机查看运行内存方法、EUI(Eco User Interface)乐视系统查看手机运行内存方法

    点击按钮,左下角,方格, 显示如下:

  10. ASP.NET如何发布更新

    如果一个应用程序迭代开发后,我们如何来进行发布更新呢? 这里,我用Visual Studio 2008和SQL server来演示. 一.程序修改完毕后,我们要进行以下操作: 1.1 点击解决方案,重 ...