Win10下编译Android Ogre3d 1.12.6

  Ogre编译环境所需配置:

     1、Android NDK版本16

     2、Android Stuido 3.3

     3、Java版本jdk1.8.0_131

     4、CMake 3.16.0-rc3

     5、Python2.7.13

     4、swigwin-3.0.8  Ogre自动生成Java接口需要。

把以上的sdk安装好后,需要在环境变量中配置一下,理论上以上版本不限定。

   Ogre下载地址:https://github.com/OGRECave/ogre.git 作者每天在更新。在Ogre的当前目录中创建一个build_android.bat 文件,文件的编译的配置如下:

cmake -E make_directory "build/" && cd build/ && cmake -DCMAKE_TOOLCHAIN_FILE="%ANDROID_NDK%\build\cmake\android.toolchain.cmake" -DCMAKE_MAKE_PROGRAM="%ANDROID_NDK%/prebuilt/windows-x86_64/bin/make.exe" -DANDROID_STL="c++_static" -DANDROID_ABI="armeabi-v7a" -G "Unix Makefiles" -DANDROID=TRUE -DANDROID_PLATFORM=android-18 -DANDROID_NATIVE_API_LEVEL=18 -DANDROID_TOOLCHAIN=clang -DCMAKE_CONFIGURATION_TYPES=Release -DOGRE_BUILD_COMPONENT_OVERLAY_IMGUI=OFF -DOGRE_BUILD_SAMPLER_DEMO=TRUE -DOGRE_BUILD_ANDROID_JNI_SAMPLE=TRUE -DOGRE_DEPENDENCIES_DIR="../AndroidDependencies" ..
cmake --build ./
cd ..
pause

创建一个build目录并且cd进入build目录下,用来存放编译文件。

cmake -E make_directory "build/" && cd build/ 

 

指定Android NDK中的cmake,%ANDROID_NDK%需要在环境变量中配置NDK的路径。

-DCMAKE_TOOLCHAIN_FILE="%ANDROID_NDK%\build\cmake\android.toolchain.cmake" 

-DCMAKE_MAKE_PROGRAM="%ANDROID_NDK%/prebuilt/windows-x86_64/bin/make.exe"

 

编译选项的设定,设置NDK的编译版本,Android宏定义,编译器使用clang等等。

-DANDROID_STL="c++_static" -DANDROID_ABI="armeabi-v7a" -G "Unix Makefiles" -DANDROID=TRUE

-DANDROID_PLATFORM=android-18 -DANDROID_NATIVE_API_LEVEL=18 -DANDROID_TOOLCHAIN=clang

-DCMAKE_CONFIGURATION_TYPES=Release

 

该版去掉了IMGUI部分代码所以需要关闭掉,不然会报错。

-DOGRE_BUILD_COMPONENT_OVERLAY_IMGUI=OFF

 

设置编译生成Android Demo,好像这里设定起不了作用。

-DOGRE_BUILD_SAMPLER_DEMO=TRUE -DOGRE_BUILD_ANDROID_JNI_SAMPLE=TRUE

需要修改Ogre的CMakeList.txt,把FALSE设置为TRUE

指定编译好的依赖库libFreeImage.a libfreetype.a libOIS.a等等,末尾中的..是指向Ogre根目录下的CMakeList.txt路径,例如:cd build/xxx ,则使用../../往上跳两级目录才能到达Ogre的根目录代码中,我们这里只使用了一层目录就能指定Ogre CMakeList。

-DOGRE_DEPENDENCIES_DIR="../AndroidDependencies" ..

开始编译.....
cmake --build ./

 

    需要修改2处地方:

1、在PlugIns/DotScene/CMakeLists.txt 需要对libpugixml.a 指定路径否则编译错误,还需要把pugiconfig.hpp,pugixml.hpp拷贝到PlugIns\DotScene\include下。

 

2、在Ogre 目录下需要在CMake/Utils/PrecompiledHeader.cmake 该行需要注释掉否则编译会报错。

  执行build_android.bat,如果编译不通过请使用Visual Studio 编译器自带的VS2015 x64控制台。

build的目录下生成一个OgreJNI工程,可以用android studio 3.4打开。

编译好的工程:https://github.com/octopus888/android_ogre1.12.6.git 目录下OgreJNI_3.3可以使用android studio 3.3打开。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章