编译系统为Windows 需要装Visual Studio2010 、CMake、NDK (r10d) 注意cmake版本不要太低也不要太高建议2.8 -3.7之间的版本
添加环境变量ANDROID_NDK 到ndk的解压目录
解压Dependencies在里面建两个文件夹为AndroidBuild/armeabi-v7a 后面可能会对不同CPU进行多个版本编译所以用了两层目录。
打开VS命令提示符输入以下命令
"D:\Program Files\cmake-3.7.2-win32-x86\bin\cmake.exe" -G"NMake Makefiles" -DCMAKE_TOOLCHAIN_FILE=.
./../cmake/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DANDROID_NATIVE_API_LEVEL=9 -DANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-4.8 ../..
../..表示上两层目录找到CMakeLists.txt文件,路径中有空格所以引号不能掉
输入完以上命令后回车,如果看到config done字样表示成功,接着输入nmake就可以开始编译了
为Android版编译64位,首先需要去掉编译FreeImage库,此库编译64位版本会失败,正好Ogre1.10.11使用了新的图片解码库,可使包体更加小巧:
打开 Dependencies\ogredeps\src\CMakeLists.txt 将下面这行改成如下(第10行),TRUE改FALSE
option(OGREDEPS_BUILD_FREEIMAGE "Build FreeImage dependency" FALSE)
输入如下命令编译64位版:
D:\JX_SDK_SRC\Dependencies\ogredeps\AndroidBuild\arm64>"D:\Program Files\cmake-3.7.2-win32-x86\bin\cmake.exe" -G"NMake Makefiles" -DCMAKE_TOOLCHAIN_FILE=..\..\CMake\android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_NATIVE_API_LEVEL=21 -DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-4.9 ../..
注意去掉命令里面的回车换行
然后编译Ogre
设置Dependencies目录修改CMake/Dependencies.cmake文件
第一行改成 set(OGRE_DEPENDENCIES_DIR "D:/JX_SDK_SRC/Dependencies" CACHE PATH "Path to prebuilt OGRE dependencies")
D:/JX_SDK_SRC/Dependencies为实际依赖存放目录
禁止OgreProperty组件的编译,亲测此组件有编译错误无法通过Android版的编译,修改Ogre源码目录下的CmakeLists.txt文件在279行左右添加下面一行
set(OGRE_BUILD_COMPONENT_PROPERTY FALSE CACHE BOOL "Disable PROPERTY on Android" FORCE)
此文章为本人的编译笔记,主要记录关键地方,部分细节没写清楚还请见谅,仅给有一定Android版编译经验的人作为参考