当前位置:首页 > osg for android安装文档
OSG for android学习材料 Windows下编译安装
并且参考
http://www.openscenegraph.com/index.php/documentation/platform-specifics/android/43-building-openscenegraph-for-android-3-0-2
http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/2012-March/057074.html
1. 前提
我的系统是windows7 x64位英文版本(win 2008 英文版也编译通过) osg是最新版,应该是3.0.2
记得不要用windows下的cmake,要用cygwin中的cmake命令。
记得一定要把系统环境变量Path加上D:\\cygwin\\bin;F:\\Android\\IDE\\android-ndk-r8-windows,否则出现ANDROID_NDK NOT FOUND类似的错误(经过多次测试,不是环境变量的问题,是因为ndk-r8b会使用ANDROID_NDK作为NDK的调用命令,因此在cygwin配置文件修改的时候吧NDK改为ANDROID_NDK就可以了,android-ndk-r8b-windows是没有问题的)。
虽然用rb8,可以编译通过,但是在ndk-build的时候会报 the mangling of 'va_list' has changed in GCC 4.4 的提示和错误,所以千万不要用r8b,我用r8,没有问题。
2. 准备
新建一个文件夹,如F:\\osgeo4w\\osg\\trunk (1)安装TortoiseSVN-x64,在天空软件下的
页1
在F:/osgeo4w/osg/trunk目录下右键选择TortoiseSVN的checkout,输入http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk 下载最新的osg,放在F:/osgeo4w/osg/trunk/OpenSceneGraph下
(2)下载安装cygwin,并且把del的部分装完,这个过程需要花费2-3个小时,主要是下载时间。 (3)下载 3rdpartyAndroid.zip ,注意不要用windows下的第三方库
下载链接在http://www2.ai2.upv.es/difusion/osgAndroid/3rdpartyAndroid.zip 有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-windows export NDK 如果使用 android-ndk-r8b-windows 需要设置如下:
ANDROID_NDK=/cygdrive/F/Android/IDE/android-ndk-r8b export ANDROID_NDK
ANDROID_SDK=/cygdrive/F/Android/IDE/android-sdk_r20-windows export ANDROID_SDK 然后运行D:\\cygwin\\Cygwin.bat文件。
之后测试一下cygwin和NDK是否成功,方法如下: ③ 验证
重启cygwin,输入:cd $NDK 能进入到ndk对应目录说明设置OK。 5 编译工程生成.so文件
页2
② 必须以管理员权限运行,否则会出错,进入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版本,输入如下:
页3
cmake .. -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=\,编译和安装都没有问题
安装后结果如下
>
其他参数还有
页4
共分享92篇相关文档