zoukankan      html  css  js  c++  java
  • OSG for android的编译总结

    最近对OSG进行了android下的编译。简单总结一下:

    0.介绍下环境:WIN7 64位 + cygwin32位 + OSG3.2.0

    1.首先介绍几篇博文,参考了不少,但并没有解决我出现的问题,但是仍有借鉴意义。

    http://blog.csdn.net/wonegequ1/article/details/46501397

    http://blog.csdn.net/xuhaiyan8825/article/details/7847313

    2.OSG版本很重要,上面几篇博文之所以没解决我的问题,最后原因竟然是因为我一开始使用的是OSG3.4版本,导致一直出现下面的错误:

    pthread_setconcurrency’在此作用域中尚未声明     ‘pthread_getconcurrency’ 在此作用域中尚未声明   pthread_yield’在此作用域中尚未声明

    上面只出现在了OSG3.4版本中,解决方法还在研究中。换成OSG3.2后,问题就消失。

    这里推荐OSG英文的官网http://www.openscenegraph.org/index.php/documentation/platform-specifics/android。对osg各版本的编译介绍的比较清楚,其他博文也都是参考官网的。但是笔者按照官网对OSG3.4进行编译还是有问题,这个后续再研究。

    3.cygwin安装很麻烦。装过64位的,报下面的错误:  CMake no longer defines WIN32 on Cygwin!   。有博文说换成32位就没问题了,结果我换了32位,还是有这个问题。然后我只能忽略了,最后编译也成功了,所以私人博文不是特别可靠。对于cygwin的安装推荐博文:http://blog.chinaunix.net/uid-7547035-id-60230.html。勾选devel,全装吧。然后在实际使用cygwin中还是会报缺少某些包,回过头重新再search再装就行了。最后到gta这个包,还是报找不到,这个可以忽略,不影响编译。

    4.后续还会遇到gdal_priv.h: No such file or directory  的错误,这边是在运行cygwin的cmake时,增加对它的路径的定义:

    -DGDAL_DIR=/cygdrive/d/OpenSceneGraph-3.2.0/3rdparty/gdal。然后再进行make时就不会有问题了。

    5.一直对cygwin不太理解。现在有了一些体会。cygwin为windows提供了类UNIX的环境。用来搭建c++开发环境GCC。因为安卓操作系统是基于linux的开源系统,而linux是用c语言开发的。安卓本身是用java开发的,并使用JNI调用本地的c语言库,实现操作系统底层调度。但底层驱动及操作系统内核是使用c语言及汇编开发的。。安卓应用可以使用java开发,也可以使用c++native开发

    6.    .a文件是linux下的静态链接库文件     .so是linux下的动态链接库文件     

    OpenGL ES 1.0 :

    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 -DANDROID_ABI="armeabi armeabi-v7a" -DANDROID_PLATFORM=8 -DANDROID_STL="gnustl_static" -DANDROID_NDK=/cygdrive/d/01Lib/04android-ndk-r9d -DJ=4 -DCMAKE_INSTALL_PREFIX=/cygdrive/d/OpenSceneGraph-3.2.0/bin -DGDAL_DIR=/cygdrive/d/OpenSceneGraph-3.2.0/3rdparty/gdal/include

    OpenGL ES 2.0:

     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 -DANDROID_ABI="armeabi armeabi-v7a" -DANDROID_PLATFORM=8 -DANDROID_STL="gnustl_static" -DANDROID_NDK=/cygdrive/d/01Lib/04android-ndk-r9d -DCMAKE_INSTALL_PREFIX=/cygdrive/d/02OSG/OpenSceneGraph-3.2.0/bin_2 -DGDAL_DIR=/cygdrive/d/OpenSceneGraph-3.2.0/3rdparty/gdal/include

  • 相关阅读:
    Codeforces Gym 100571A A. Cursed Query 离线
    codeforces Gym 100500 J. Bye Bye Russia
    codeforces Gym 100500H H. ICPC Quest 水题
    codeforces Gym 100500H A. Potion of Immortality 简单DP
    Codeforces Gym 100500F Problem F. Door Lock 二分
    codeforces Gym 100500C D.Hall of Fame 排序
    spring data jpa 创建方法名进行简单查询
    Spring集成JPA提示Not an managed type
    hibernate配置文件中的catalog属性
    SonarLint插件的安装与使用
  • 原文地址:https://www.cnblogs.com/hanmolabi/p/7725908.html
Copyright © 2011-2022 走看看