osgforandroid安装文档

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

页1OSGforandroid学习材料Windows下编译安装并且参考://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/2012-March/057074.html1.前提我的系统是windows7x64位英文版本(win2008英文版也编译通过)osg是最新版,应该是3.0.2记得不要用windows下的cmake,要用cygwin中的cmake命令。记得一定要把系统环境变量Path加上D:\cygwin\bin;F:\Android\IDE\android-ndk-r8-windows,否则出现ANDROID_NDKNOTFOUND类似的错误(经过多次测试,不是环境变量的问题,是因为ndk-r8b会使用ANDROID_NDK作为NDK的调用命令,因此在cygwin配置文件修改的时候吧NDK改为ANDROID_NDK就可以了,android-ndk-r8b-windows是没有问题的)。虽然用rb8,可以编译通过,但是在ndk-build的时候会报themanglingof'va_list'haschangedinGCC4.4的提示和错误,所以千万不要用r8b,我用r8,没有问题。2.准备新建一个文件夹,如F:\osgeo4w\osg\trunk(1)安装TortoiseSVN-x64,在天空软件下的页2在F:/osgeo4w/osg/trunk目录下右键选择TortoiseSVN的checkout,输入下载最新的osg,放在F:/osgeo4w/osg/trunk/OpenSceneGraph下(2)下载安装cygwin,并且把del的部分装完,这个过程需要花费2-3个小时,主要是下载时间。(3)下载3rdpartyAndroid.zip,注意不要用windows下的第三方库下载链接在有89127k(4)下载NDK,我下的是android-ndk-r8-windows.zip有107M,解压到某个目录下,如F:\Android\IDE\android-ndk-r8-windows。(5)打开cygwin安装目录下的.bash_profile文件,我的在D:\cygwin\home\xuhy\.bash_profile,xuhy是你电脑的登录用户名。在末尾加上NDK=/cygdrive/F/Android/IDE/android-ndk-r8-windowsexportNDK如果使用android-ndk-r8b-windows需要设置如下:ANDROID_NDK=/cygdrive/F/Android/IDE/android-ndk-r8bexportANDROID_NDKANDROID_SDK=/cygdrive/F/Android/IDE/android-sdk_r20-windowsexportANDROID_SDK然后运行D:\cygwin\Cygwin.bat文件。之后测试一下cygwin和NDK是否成功,方法如下:③验证重启cygwin,输入:cd$NDK能进入到ndk对应目录说明设置OK。5编译工程生成.so文件页3②必须以管理员权限运行,否则会出错,进入android项目工作目录:cd$NDK②依次进入samples\hello-jni目录,完整路径为F:\Android\IDE\android-ndk-r8-windows\samples\hello-jni③运行:$NDK/ndk-build。注意:该命令$NDK和/ndk-build是连接到一起的,中间没有空格,实际使用时输入完整命令$NDK/ndk-build,不能只输入ndk-build正常编译编译后,当前目录下生成两个文件夹libs和obj,在项目libs/armeabi目录下生成对应的.so文件。3.开始把3rdpartyAndroid.zip解压到F:/osgeo4w/osg/trunk/OpenSceneGraph下,如下,cmake的时候会自动去搜索。然后在F:/osgeo4w/osg/trunk/OpenSceneGraph中新建一个文件夹为build之后,管理员权限运行cygwin,cd到这个build目录下,输入如下命令:如果是编译GLES1版本,输入如下:页4cmake..-DOSG_BUILD_PLATFORM_ANDROID=ON-DDYNAMIC_OPENTHREADS=OFF-DDYNAMIC_OPENSCENEGRAPH=OFF-DOSG_GL_DISPLAYLISTS_AVAILABLE=OFF-DOSG_GL_MATRICES_AVAILABLE=ON-DOSG_GL_VERTEX_FUNCS_AVAILABLE=ON-DOSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE=ON-DOSG_GL_FIXED_FUNCTION_AVAILABLE=ON-DOSG_CPP_EXCEPTIONS_AVAILABLE=OFF-DOSG_GL1_AVAILABLE=OFF-DOSG_GL2_AVAILABLE=OFF-DOSG_GL3_AVAILABLE=OFF-DOSG_GLES1_AVAILABLE=ON-DOSG_GLES2_AVAILABLE=OFF-DJ=4如果编译GLES2版本,输入如下:cmake..-DOSG_BUILD_PLATFORM_ANDROID=ON-DDYNAMIC_OPENTHREADS=OFF-DDYNAMIC_OPENSCENEGRAPH=OFF-DOSG_GL_DISPLAYLISTS_AVAILABLE=OFF-DOSG_GL_MATRICES_AVAILABLE=OFF-DOSG_GL_VERTEX_FUNCS_AVAILABLE=OFF-DOSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE=OFF-DOSG_GL_FIXED_FUNCTION_AVAILABLE=OFF-DOSG_CPP_EXCEPTIONS_AVAILABLE=OFF-DOSG_GL1_AVAILABLE=OFF-DOSG_GL2_AVAILABLE=OFF-DOSG_GL3_AVAILABLE=OFF-DOSG_GLES1_AVAILABLE=OFF-DOSG_GLES2_AVAILABLE=ON-DJ=4在win2008下又编译了一次,GLES2版本,在后面加上了-DANDROID_PLATFORM=8-DANDROID_STL=gnustl_static-DCMAKE_INSTALL_PREFIX=/cygdrive/d/osggles2,编译和安装都没有问题安装后结果如下其他参数还有页5-DANDROID_NDK={PathtoyourNDKrootdirectory}-DANDROID_ABIarmeabiarmeabi-v7a-DANDROID_PLATFORM=8-DANDROID_STL=gnustl_static-DANDROID_DEBUG-DANDROID_OPTIM_NEON-DANDROID_OPTIM_ARM32-DJ=4-DCMAKE_INSTALL_PREFIX=/cygdrive/d/osggles2我没有用到。然后回车。控制台会输出很多信息,包括他找到第三方库和NDK的信息。之后make,会等很久,大概2个小时以上。成功后界面如下:页6然后makeinstall,一分钟以内,界面如下:从图上可以看到,安装的位置在usr/local......下面,也就是说是在cygwin模拟的linux环境下的。至此,据说可以运行例子了,怎么运行?我还没试。页7注意看安装目录obj\local\下的有没有如下.a文件,如果没有,从第三方库拷贝过来,否则链接的时候会报错。编译运行osgAndroidExampleGLES1/2首先参考前一篇编译GLES1GLES2的版本,注意不要用ndk-r8b的版本。我的步骤如下:打开eclipse,新建项目-android-从已有代码创建;选择F:\osgeo4w\osg\trunk\OpenSceneGraph\examples\osgAndroidExampleGLES2,勾选拷贝到工作空间然后在eclipse中修改jni/Android.mk,OSG_ANDROID_DIR:=D:/osggles2##这个是你编译时的安装路径,如果没有指定,那就是这个路径D:\cygwin\usr\localLOCAL_LDLIBS:=-llog-lGLESv2-lz-lgnustl_static修改jni/Application.mkAPP_PLATFORM:=android-8运行cygwin,cd到项目根目录,就是F:\Android\eclipse_workspace\osg.AndroidExample.osgViewer执行如下命令:$ANDROID_NDK/ndk-build页8成功后界面如下:接下来回到eclipse中,先把项目改个名,不然会因为名称重复无法导入另一个例子然后编译该项目。编译的时候会提示一些错误,如下:注释掉@Override即可。然后点run-ASAndroidapplication.就可以在bin下看到apk文件了。页9在模拟器上运行不了,需要拷贝到真机上跑。至于调试:avd貌似不支持opengles的调试,反正我用4.0没调试成功。先把手机开启usb调试模式,然后直接把手机连接电脑,注意不要开启u盘,电脑会自动安装手机的驱动,如果没有自动安装,自己去找驱动来装。连接好后,在eclipse中直接点调试,默认就是手机了。以下是参考:Afterthisisfinished,wearereadytostarttheeclipseproject.Beforestartingeclipse,copythefolderosgAndroidExampleGLES1from/home/USER/Android/OpenSceneGraph-3.0.1/examplesto/home/USER/workspace/osgAndroidExampleGLES1(orwhereverelseyoureclipseworkspaceis).StarteclipseandgotoNew→Projectandchoose“AndroidProject“.Next,thenchoose„Createprojectfromexistingsource“andsetthelocationto/home/USER/workspace/osgAndroidExampleGLES1页10TheProjectNameshouldbeosgAndroidExampleGLES1.(SCREENSHOT6)Next,thebuildtargetshouldbeAndroid2.2orhigher.Expandtheprojectandopenthefolderjni.OpenthefileAndroid.mkChangeline7to:OSG_ANDROID_DIR:=/usr/localChangeline21to:LOCAL_DLIBS:=-llog-lGLESv1_CM-ldl-lz-lgnustl_staticandsaveit.

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功