刚刚在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中啊。的主要内容,如果未能解决你的问题,请参考以下文章

十大开源游戏引擎深入比较(转)

OSX + OGRE + XCode

物理引擎Havok的一个简单实例(使用Ogre渲染)

转载Ogre3d 2.1 源码编译安装教程

如何在win7 下编译好的 hadoop2.7.4包

python可以开发游戏吗?有对应的第三方库可以利用吗?