MAC使用QT的framework库

来源:互联网 发布:库卡krc 5.6编程软件 编辑:程序博客网 时间:2024/06/05 00:38

     机缘巧合的我又开了MAC开发,做为一名合格的程序员,虽然我们第一次接触MAC,总会遇到各种各样的问题,但我们要良好的学习方法,把遇到的问题都一点一滴的记录下来。

     项目是用unity3d开发的,里边用到了QT的部分功能,用到QT那么就要先安装QT,QT官网很容易找到安装包,但是仔细一下傻眼了,MAC下unity3d只支持32bit的bundle(发现他不能称作库,只是把一些用到的资源做一个捆绑,并不做编译),而找到的安装包都是64bit的,好吧我们只好现在源代码自己编译安装了,要找的源码http://download.qt-project.org/official_releases/qt/5.3/5.3.0/submodules/,就下qtbase-opensource-src-5.3.0.tar.gz,包含的全以免到时候还得补全库,编译按照README的说明进行就好了,好了QT的环境就搭建好了。

     制作bundle就需要用Xcode了,只要把用到的framework库添加进去就好了,制作并不复杂,将制作好的bundle添加到unity工程中,发布运行没有问题成功了,然后让测试开始测试,发现为什么我们的bundle不能被成功加载了,明明在自己的电脑上运行很正常啊,开始研究扒文章,参考http://www.cppblog.com/biao/archive/2009/04/30/81602.aspx,因为是本机你安装了QT用到的库都有,但是发布给其他人用得时候,其他人电脑上并没有安装(就算安装了路径也可能不同)所以使用失败,处理方法可以用macdevelop处理一下你的bundle,

macdeployqt HomePlatform.bundle/ 这是我处理的命令处理完后打开看下。


用到的全部内容已经自动添加到bundle中了,可以用otool -L 命令来查看下依赖关系,发现依赖的库的路径已经指到了类似这样的路径

@executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore (compatibility version 5.3.0, current version 5.3.0)

@executable_path代表当前可执行文件所在的目录,如果不是bundle而是qt自己开发的app那么如此处理完后就能正常使用了(qt在发布的时候都会遇到类似问题包括在windows下),但我们的是bundle还需要被其他的app调用,所以需要将bundle里的内容全部拷到app的包目录下:


是全部切记,这样我们的app再发布的时候就可以正常使用了。

0 0
原创粉丝点击