IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> serialplot mac系统编译移植打包发布 -> 正文阅读

[开发工具]serialplot mac系统编译移植打包发布

环境

  • macOS Big Sur 11.5.1 处理器:Intel
  • Qt5.15.2
  • Git

clone

qwt

下载qwt6.2.0 zip包 https://sourceforge.net/projects/qwt/files/

将文件重命名为qwt后放到 ~/ws

serialplot

克隆serialplot

cd ~/ws
git clone https://github.com/hyOzd/serialplot.git

编译

qwt

打开qwt的qwt.pro文件,切换至Release,编译

serialplot

打开serialplot.pro文件

#添加qwt库
LIBS += -F$$PWD/../build-qwt-Desktop_Qt_5_15_2_clang_64bit-Release/lib -framework qwt

#添加qwt库目录
INCLUDEPATH += $$PWD/../qwt/src

在QtCreator 项目 -> Build -> Build Environment 添加DYLD_FRAMEWORK_PATH /Users/qj/ws/build-serialplot-Desktop_Qt_5_15_2_clang_64bit-Release

在这里插入图片描述

然后编译->运行

打包

在build目录中执行
macdeployqt ./serialplot.app

// 注意:如果提示找不到此命令的解决办法:
// 在你的qt安装目录找到这个命令的位置,把其路径添加到“bash环境”里面即可。
command not found: macdeployqt      //提示找不到此命令
cd ~     //切换到用户家目录
vim .bash_profile      //用vim编辑配置文件bash_profile 注:按键盘的“i”进入vim插入模式
//在bash_profile中新增以下这一行的内容,下面这一行的意思是在此目录查找macdeployqt这个命令
export PATH=${PATH}:/Users/robert/Qt5.12.5/5.12.5/clang_64/bin  
:wq     //退出并保存
source .bash_profile  //执行这个命令使刚才的配置立即生效
// 执行完macdeployqt命令后出现错误
ERROR: no file at "/Library/Frameworks/qwt.framework/Versions/6/qwt.framework/Versions/6/qwt"
// qwt为第三方库,macdeployqt无法直接将其打包到serialplot.app中,需要手动复制
cp -r ~/ws/build-qwt-Desktop_Qt_5_15_2_clang_64bit-Release/lib/qwt.framework ./serialplot.app/Contents/Frameworks/qwt.framework

右键serialplot.app包选择查看包内容,即可打开一个目录,展开目录可以看到macdeployqt给这个bundle增加了有关qt的依赖库文件。如下图所示:

// 这时我们双击serialplot.app运行,出现错误
Dyld Error Message:
  dyld: Using shared cache: B936FA17-1090-3677-8A1A-0FB7DE3CEC6C
Library not loaded: qwt.framework/Versions/6/qwt
// 从log发现是qwt loaded失败

// 使用otool查看serialplot.app使用的动态库,如下图所示:
otool -L serialplot.app/Contents/MacOS/serialplot

在这里插入图片描述

// 发现qwt的路径与其他qt库有差异,使用install_name_tool命令修改qwt库路径
install_name_tool -change "qwt.framework/Versions/6/qwt" "@rpath/qwt.framework/Versions/6/qwt" serialplot.app/Contents/MacOS/serialplot
// 然后再使用otool查看app使用的库路径
otool -L serialplot.app/Contents/MacOS/serialplot

在这里插入图片描述

// 查看qwt使用的库
otool -L serialplot.app/Contents/Frameworks/qwt.framework/Versions/6/qwt
// 对比serialplot.app/Contents/Frameworks中qt库与qwt所使用的库,将没有的库手动cp到Framework中即可
cp -r ~/Qt/5.15.2/clang_64/lib/QtOpenGL.framework ./serialplot.app/Contents/Frameworks/QtOpenGL.framework
 cp -r ~/Qt/5.15.2/clang_64/lib/QtConcurrent.framework ./serialplot.app/Contents/Frameworks/QtConcurrent.framework

好了,最艰难地时刻过去了,现在双击serialplot.app即可正常运行!

发布

制作dmg

// 在serialplot build目录中执行
macdeployqt ./serialplot.app -dmg
// 忽略告警,应为我们之前执行过macdeployqt,会提示文件已经存在,这一步仅用来生成dmg的

大功告成!

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 11:12:24  更:2022-05-06 11:12:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 15:15:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码