| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Mac配置Qt环境和把应用打包成dmg文件 -> 正文阅读 |
|
[开发工具]Mac配置Qt环境和把应用打包成dmg文件 |
Mac配置Qt环境和把应用打包成dmg文件1.下载和安装Qt可以选择官网下载online版本,编译环境需要选中mac,否则,无构建环境; 2.Mac中编译的应用程序都是app(1)应用的可执行目录是xx.app/Contents/MacOS; (2)frameworks_my目录加载了一个共享库libuntitled_qt_lib.1.0.0.dylib
2.1 包结构目录 ? 2.2包结构的tree目录 └── Contents ????├── Frameworks ????│?? ├── QtCore.framework ????│?? │?? ├── …… ????…… ????├── Resources ????│?? ├── empty.lproj ????│?? └── qt.conf ????└── frameworks_my ????????└── libuntitled_qt_lib.1.0.0.dylib 2.3 mac中qt动态加载代码 mac 动态加载dylib,代码和其他平台一样,只是文件后缀是dylib; 具体代码如下: ????QLibrary?lib; ????//?1.相对路径;?ok; ????QString?strAppPath?=?QCoreApplication::applicationDirPath(); #if?0 ????qDebug()<<"Mac app path test:"<<strAppPath;?//?=>?untitled_qt_mac_test.app/Contents/MacOS; ????lib.setFileName(QString(strAppPath?+?"//../../../libuntitled_qt_lib.1.0.0")); #endif ????//?2.打包路径;?ok; ????lib.setFileName(QString(strAppPath?+?"//../frameworks_my/libuntitled_qt_lib.1.0.0")); ????//?libuntitled_qt_lib.1.0.0.dylib ????if(!lib.load()){ ????????qDebug()?<<?"load library failed"; ????????qDebug()?<<?lib.errorString(); ????????return?0; ????} ????typedef?int?(*testMacLib)(int,?int); ????testMacLib?myAdd?=?(testMacLib)lib.resolve("testMacLib"); ????if(myAdd){ ????????qDebug()?<<?"1 + 1 = "?<<?myAdd(1,1); ????} ????else{ ????????qDebug()?<<?lib.errorString(); ????} 2.4 nm列出动态库里面的导出函数 ?????mac平台xcode里面的工具。 ??(1)列出?liblistdevs.so 的函数 输出到 listdevs.txt 文本文件里面 ??????nm -D liblistdevs.so > listdevs.txt ??(2)列出?liblistdevs.so 的函数 输出到 listdevs.txt 文本文件里面 ??????objdump -tT liblistdevs.so > listdevs.txt 2.5 列出某个文件的详细信息 ?mac平台xcode里面的工具。 (1)命令行: otool -hv libuntitled_qt_lib.1.0.0.dylib (2)结果: libuntitled_qt_lib.1.0.0.dylib: Mach header ??????magic ?cputype cpusubtype ?caps ???filetype ncmds sizeofcmds ?????flags MH_MAGIC_64 ??X86_64 ???????ALL ?0x00 ??????DYLIB ???19 ??????1776 ??NOUNDEFS DYLDLINK TWOLEVEL WEAK_DEFINES BINDS_TO_WEAK NO_REEXPORTED_DYLIBS 3.app打包成dmg文件? ? ? ? ? ??? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/26 7:19:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |