第一章.编译lua-protobuf支持库(Windows插件-Win10编译)
第二章.Unity & lua-protobuf 环境配置
第三章.二进制proto读取功能,与,lua-protobuf注意事项简介说明
第四章.编译lua-protobuf支持库(Android插件-Win10编译)
第五章.编译lua-protobuf支持库(Android插件-Mac10.13.6编译)
第六章.编译lua-protobuf支持库(IOS插件-Mac10.13.6编译)
介绍
本章,会用 Windows10 系统讲解
一,使用工具
1,VS2019 64位+Unity 2019.3.5f1 (64-bit)
二,开发工具下载链接
1,VS2019专业版:https://visualstudio.microsoft.com/zh-hans/vs/
2,Unity 2019.3.5f1 (64-bit):https://unity3d.com/cn/get-unity/download/archive
3,ndk r19(64-bit)(19.0.5232133)版本 下载:https://dl.google.com/android/repository/android-ndk-r19-windows-x86_64.zip
4,jdk-8u92-windows-x64.exe 下载:https://www.oracle.com/java/technologies/javase-downloads.html
5,android-studio-ide-192.6392135-windows.exe 下载:https://developer.android.com/studio
三,编译lua-protobuf需要的工具下载链接
1,ninja 下载:https://github.com/ninja-build/ninja/releases
2,android-ndk-r15c-windows-x86_64.zip版本64位 下载:https://dl.google.com/android/repository/android-ndk-r15c-windows-x86_64.zip?hl=cn
3,cmake3.6版本64位下载:https://cmake.org/files/v3.6/
四,安装解压 下载的文件后,打开Android Studio软件
1,
右下角单击红色框按扭
2,
选中这两个
3,
先中这个后,单击OK,下载SDK和CMake和ninja
但是,这个AndroidStudio内的CMAKE版本默认是3.10, 一定要下载3.6,所以,也没有什么用处.CMAKE里面ninja 有可能用到.
4,
D:\Java 下安装JDK
D:\Android\Sdk 下载SDK
D:\Android\Ndk-r15c-64bit 解压 NDK
D:\CMake\bin 下安装CMake
D:\ninja-win 解压ninja
五,环境变量设置
1,变量名:Java_Home,变量值:D:\Java\jdk1.8.0_92
2,变量名:CLASSPATH,变量值:.;%Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar
3,变量名:ANDROID_SDK,变量值:D:\Android\Sdk
4,变量名:ANDROID_NDK,变量值:D:\Android\Ndk-r15c-64bit
5,Path里,添加以下几个路经
%Java_Home%\bin
%Java_Home%\jre\bin
%ANDROID_NDK%
%ANDROID_SDK%\tools
%ANDROID_SDK%\platform-tools
D:\CMake\bin
D:\ninja-win
6,CMD里写java出来命令,算是JDK设置成功
7,CMD里写adb出来命令,算是SDK设置成功
8,CMD里写ndk-build出来命令,算是NDK设置成功
六,设置build_xlua_with_libs
1,记事本打开文件 D:\build_xlua_with_libs\build\cmake\android.windows.toolchain.cmake
249行左右
# Toolchain.
if(CMAKE_HOST_SYSTEM_NAME STREQUAL Linux)
set(ANDROID_HOST_TAG linux-x86_64)
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL Darwin)
set(ANDROID_HOST_TAG darwin-x86_64)
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL Windows)
set(ANDROID_HOST_TAG windows-x86_64)
endif()
set(ANDROID_TOOLCHAIN_ROOT "${ANDROID_NDK}/toolchains/${ANDROID_TOOLCHAIN_ROOT}-4.9/prebuilt/${ANDROID_HOST_TAG}")
set(ANDROID_TOOLCHAIN_PREFIX "${ANDROID_TOOLCHAIN_ROOT}/bin/${ANDROID_TOOLCHAIN_NAME}-")
if(CMAKE_HOST_SYSTEM_NAME STREQUAL Windows)
set(ANDROID_TOOLCHAIN_SUFFIX .exe)
endif()
if(ANDROID_TOOLCHAIN STREQUAL clang)
set(ANDROID_LLVM_TOOLCHAIN_PREFIX "${ANDROID_NDK}/toolchains/llvm-3.6/prebuilt/${ANDROID_HOST_TAG}/bin/")
最底下一行前面写#注释掉.
2,注释掉的下一行写
set(ANDROID_LLVM_TOOLCHAIN_PREFIX "${ANDROID_NDK}/toolchains/llvm/prebuilt/${ANDROID_HOST_TAG}/bin/")
3,最后代码是以下这样
4,记事本打开D:\build_xlua_with_libs\build\make_android_lua53.bat文件
从最下面开始数,倒数第三行复子以下代码
mkdir build_v8a
%cmake_bin% -H.\ -B.\build_v8a "-GAndroid Gradle - Ninja" -DANDROID_ABI=arm64-v8a -DANDROID_NDK=%ANDROID_NDK% -DCMAKE_BUILD_TYPE=Relase -DCMAKE_MAKE_PROGRAM=%ninja_bin% -DCMAKE_TOOLCHAIN_FILE=.\cmake\android.windows.toolchain.cmake "-DCMAKE_CXX_FLAGS=-std=c++11 -fexceptions"
%ninja_bin% -C .\build_v8a
mkdir .\plugin_lua53\Plugins\Android\libs\arm64-v8a
move .\build_v8a\libxlua.so .\plugin_lua53\Plugins\Android\libs\arm64-v8a\libxlua.so
5,结果是以下这样的图
七,编译lua-protobuf
1,D:\build_xlua_with_libs\build\make_android_lua53.bat 双击编译
等两分钟左右,就会生成三个.so文件
注:编译失败时,D:\build_xlua_with_libs\build下的,build_android_x86 和 build_v7a 和 build_v8a 三个目录,删除后,重新双击
2,D:\build_xlua_with_libs\build\plugin_lua53\Plugins\Android目录下libs复子粘贴到
Unity工程Xlua插件的,D:\UnityProject\Assets\Plugins\Android 目录下
3,先在UNITY编辑器运行测试DLL插件
之后在生成APK文件,在安卓上,能打印,以上图片内容,就算编译.so文件,成功了.
八,Unity配置JDK,SDK,NDK
1,
九,Unity编译APK文件
1,
十,APK文件复子到安卓手机测试
1,能打印以下图,算是成功编译了.
编译lua-protobuf完
第一章.编译lua-protobuf支持库(Windows插件-Win10编译)
第二章.Unity & lua-protobuf 环境配置
第三章.二进制proto读取功能,与,lua-protobuf注意事项简介说明
第四章.编译lua-protobuf支持库(Android插件-Win10编译)
第五章.编译lua-protobuf支持库(Android插件-Mac10.13.6编译)
第六章.编译lua-protobuf支持库(IOS插件-Mac10.13.6编译)