Mac下QT打包
1. 如果没有包含第三方库
1.打包成app
1. qt release编译后
2. ./macdeployqt xxx.app // macdeployqt的目录在../Qt/5.15.2/clang_64/binQt的依赖库会自动打包到这个文件里面,把这个app文件拷贝给别人就可以直接运行
2.打包成dmg的文件
1. qt release编译后
2. ./macdeployqt xxx.app -dmg
2. 如果包含第三方库
1. qt release编译后
2. 查看一个动态库或应用程序的依赖 otool -L xxx.app/Contents/MacOS/xxx
3. 执行完此命令后,找到xxx这个编译好的程序右键“打开包内容/Show Package Contents”,然后跳转到bundle的包内部目录里面,切换到“Contents”目录下的Frameworks目录中
在Frameworks目录中,创建一个目录“xxxx”(自己起的名字)然后把你制作的动态库或第三方的动态库放到这个目录。
4. 为了发布出去的应用程序不再在/usr/local/lib目录下找对应的动态库。而是在bundle包(目录)中查找。从而用户复制你的bundle到“应用程序”目录即可直接运行。因此你需要修改应用程序记录动态库的路径。修改方法如下:
install_name_tool -change "libXXXX.1.dylib" "@rpath/xxxx/libXXXX.1.dylib" xxx.app/Contents/MacOS/xxx
5 ./macdeployqt xxx.app -dmg
其他:
在QT中如何使用dylib
1. 将dylib的头文件包含进来
INCLUDEPATH += "xxxx" // 头文件的目录位置
2. 将dylib动态库包含进来
这里建议使用QT的自动导入工具(对比手动导入和自动导入,发现dylib的名字会变,导致手动加载不了包)
右击工程,选择添加库,然后按操作来,就完成了,完成后在.pro文件会看到自动添加了配置