简介: qt
项目在MacOS
平台上面发布成可执行程序.app
,或是免安装的绿色版本、亦或者安装形式的安装包。
[TOC]
本文初发于 “偕臧的小站“,同步转载于此。
简述:
qt
项目在MacOS
平台上面发布成可执行程序.app
,或是免安装的绿色版本、亦或者安装形式的安装包。亲测有效。测试项目参见 QT5/C++项目:基于QT的跨平台网络对战象棋
实现了QT5的项目在windows、Linux、MacOS、Android平台的发布
该博文系列:
- qt项目在MacOS平台上面发布成可执行程序.app
- qt项目在Linux平台上面发布成可执行程序.run
- qt项目在Windows平台上面发布成可执行程序.exe
- qt项目在Android平台的发布(未单独列举出来)
开发平台环境:
💻: MacOS 10.14.6
📎 Qt 5.12.8
📎 gcc/g++ 9.2
📎 gdb8.3
项目在MacOS平台发布:
新的方法(2020-05-22):
前提: 进入 /Users/xmuli/Qt5.12.8/5.12.8/clang_64/bin
路径下
- 打包为
*.app
格式:./macdeployqt /Users/xmuli/project/github/build-ChineseChess-Desktop_Qt_5_12_8_clang_64bit-Release/ChineseChess.app
- 打包为
*.dmg
格式:./macdeployqt /Users/xmuli/project/github/build-ChineseChess-Desktop_Qt_5_12_8_clang_64bit-Release/ChineseChess.app -dmg
旧的方法(2019-02-10):
(1)同样子,在MacOS
的Qt Creator
里面编译运行Release
版本的ChineseChess
项目。
(2)打开build-ChineseChess-Desktop_Qt_5_9_7_clang_64bit-Release
文件夹。进到该目录,会看到有一个ChineseChess.app
。这个并不是文件,而是一个目录,只是OS X
系统看到某个目录的扩展名是app
,就会将其认为是Bundle
目录,所以双击会直接执行(当必须要是真正的Bundle
)。
(3)使用QT
提供了一个非常方便的打包工具macdeployqt
,该文件位于如下目录
/Users/yuanyi/Qt5.9.7/5.9.7/clang_64/bin
,可以将这个目录加入到PATH
环境变量中。这里有点复杂,(需要注意的是,Unix
【MacOS
就是其中一种】及类Unix
系统里,每行结尾只有换行“\n”
,Windows
系统里面,每行结尾是换行+回车“\n\r”
)。当在终端里面,将上面目录路径添加到PATH
之后。输入一下命令在终端。
:set ff=unix #转换为unix格式
:wq #保存、退出
方可保存和退出成功。
(4)现在只需要执行如下的命令,系统就会自动该着Bundle
,把相关的文件和目录都放到Bundle
中的相关位置。命令语句如下:
macdeployqt ChineseChess.app
(5)处理完后,Bundle
的目录结构发生改变,很明显,macdeployqt
命令将相关文件和目录都放到了Bundle
中。现在将这个处理完的ChineseChess.app
复制到任何OS X
系统上都可以运行了,无论安装没安装QT
,都可以运行
下载/系列地址:
打包体验程序,下载地址: chinessChess
欢迎 star 和 fork 这个系列的 Qt / DTK 学习,附学习进阶的路线图。
本次心得总结:
将该部分从从之前的一篇之前的 QT5/C++项目:基于QT的跨平台网络对战象棋 原创文章之中,分离开来,感觉还是比较有用一篇文章。