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打開。

 

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