刚刚在linux下编译好了ogre 3D渲染引擎,怎样将它移植到Android中啊。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刚刚在linux下编译好了ogre 3D渲染引擎,怎样将它移植到Android中啊。相关的知识,希望对你有一定的参考价值。
目前为止,Ogre 1.7.3暂时不支持android,虽然Android是以Linux为底层内核,但是Android NDK编译Ogre 1.7是不可能的。但是可以检查Ogre的最新代码 1.8版本(https://bitbucket.org/sinbad/ogre/src/)在OgreMain/src文件夹下面可以看到Android文件夹,说明Ogre 1.8是支持Android的,但是Ogre 1.8没有最终release。不过Google Code上有个Gamekit(http://code.google.com/p/gamekit/),集成了Ogre 1.8和物理与声音引擎,由于使用不稳定的Ogre 1.8,可以使用NDK编译在Android上使用。 参考技术A 是用什么编译器编译的?追问用的cmake。
追答我的意思假如是移植到CPU是ARM的机器,对应的编译器是arm-linux-gcc
cmake调用的是gcc还是什么?
用的是g++啊
追答所以移植不了的
不是一个架构,硬件完全不同,找到你对应的ANDROID的编译器
linux系统上编译好的ImageMagick做迁移
如何把编译好的工具迁移到另一台机器上去,有时候我们会遇到这样的问题,怎样解决库文件的依赖问题就需要我们按照出错提示去解决问题了,我以ImageMagick为例做下讲解。
如何编译安装ImageMagick环境,参照我的上一篇文章ImageMagick的安装和使用案例,链接:
http://xiaoxiaozhou.blog.51cto.com/4681537/1903499
在本文中两台主机分别用server1和server2标识,server1为安装编译好ImageMagick的系统,server2则为未编译安装ImageMagick的系统。
首先把server1上编译好的文件传到server2上,下面为server2上已经接收到的文件
~/sxzhou> ll
total 40
drwxr-xr-x 7 was_wcm was_wcm 4096 Mar 3 10:30 ImageMagick
drwxr-xr-x 8 was_wcm was_wcm 4096 Mar 3 10:30 libpng-1.5.8
执行出错:
~/sxzhou/ImageMagick/bin> ./convert
./convert: error while loading shared libraries: libMagickCore-7.Q16HDRI.so.2: cannot open shared object file: No such file or directory
可以发现是库文件缺失,把缺失的库文件拷到server2上就可以了
server1上查找缺失的库文件
# find -name libMagickCore-7.Q16HDRI.so.2
./usr/local/ImageMagick/lib/libMagickCore-7.Q16HDRI.so.2
./home/sxzhouhou/ImageMagick-7.0.5-0/MagickCore/.libs/libMagickCore-7.Q16HDRI.so.2
可以发现除了安装目录下/usr/local/下也有库文件,拷贝/usr/local/ImageMagick到server2的/usr/local目录下
再次执行出错:
/home/was_wcm/sxzhou/ImageMagick/bin # ./convert
./convert: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or director
server1上查找
# find / -name libpng15.so.15
/usr/local/lib/libpng15.so.15
/home/sxzhouhou/libpng-1.5.8/.libs/libpng15.so.15
server1上png相关的库文件
/usr/local/lib # ls libpng
libpng.a libpng.so libpng15.la libpng15.so.15 libpng.la libpng15.a libpng15.so libpng15.so.15.8.0
拷贝server1上png相关的库文件到server2的/usr/local/lib/目录下
再次执行出错:
/home/was_wcm/sxzhou/ImageMagick/bin # ./convert
./convert: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory
/home/was_wcm/sxzhou/ImageMagick/bin # ldconfig /usr/local/lib
ldconfig: /usr/local/lib/libpng15.so.15 is not a symbolic link
出现上面的错误提示的原因是libpng15.so.15正常情况下是一个符号链接,所以修改其为符号链接即可
查看源主机的文件
/usr/local/lib # ll libpng15.so.15
lrwxrwxrwx 1 root root 18 Mar 2 14:21 libpng15.so.15 -> libpng15.so.15.8.0
而现主机文件
/usr/local/lib # ll libpng15.so.15
-rwxr-xr-x 1 root root 610183 Mar 3 10:44 libpng15.so.15
server2上做以下操作
/usr/local/lib # mv libpng15.so.15 libpng15.so.15.8.0
/usr/local/lib # ln -s libpng15.so.15.8.0 libpng15.so.15
/usr/local/lib # ll libpng15.so.15
lrwxrwxrwx 1 root root 18 Mar 3 10:59 libpng15.so.15 -> libpng15.so.15.8.0
终于可以使用了!!!
/home/was_wcm/sxzhou/ImageMagick/bin # ./convert
Version: ImageMagick 7.0.5-0 Q16 x86_64 2017-03-02 http://www.imagemagick.org
Copyright: ? 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP
Delegates (built-in): png zlib
本文出自 “xiaoxiaozhou” 博客,请务必保留此出处http://xiaoxiaozhou.blog.51cto.com/4681537/1903514
以上是关于刚刚在linux下编译好了ogre 3D渲染引擎,怎样将它移植到Android中啊。的主要内容,如果未能解决你的问题,请参考以下文章