xLua - 第三方扩展的添加和编译

Posted EZhex1991

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xLua - 第三方扩展的添加和编译相关的知识,希望对你有一定的参考价值。

说明:

  1. 添加第三方扩展,就是在xLua原有的c源码库中添加新的静态库供lua环境使用,所以,请确保你已有Unity和xLua基础。
  2. 在xLua的官方文档上有rapidjson的添加流程,这里只是把个人在编译时碰到的问题进行总结。
  3. 实际流程按官方文档来基本没有问题,但是流程中可能碰到各种小警告和报错,遇到问题可以尝试修改相关文件,但是如果失败建议删除所有的文件后重头开始。

Win

所需工具:

  1. Windows操作系统。(本人Win7)
  2. xLua的源码。(传送门https://github.com/Tencent/xLua,其下的build目录即为源码)
  3. C和C++的编译器。(如果是Unity自动安装的VS,那么有可能只有C#,需要自行添加)
  4. cmake。(本人3.7.2)
  5. 第三方扩展的源码(本人只加了官方教程中的rapidjson)。
  6. 一定的英文基础,一定的耐心。可能需要一定的批处理基础。

具体流程:

  1. 阅读官方文档
  2. 安装CMake。
    此处注意,cmake安装完毕后即便是环境变量正常,也可能出现bat文件执行时无cmake命令的情况,重启可解决,如果不想重启或重启无效,请手动开启cmd窗口cd至bat文件目录执行文件。
  3. 修改CMakeLists.txt文件(本人不会,照着例子做)
  4. 修改bat文件(64位为例:右键make_win64_lua53.bat编辑)
  5. 添加库源码文件。
mkdir build64 & pushd build64
cmake -G "Visual Studio 14 2015 Win64" ..
popd
cmake --build build64 --config Release
md plugin_lua53\\Plugins\\x86_64
copy /Y build64\\Release\\xlua.dll plugin_lua53\\Plugins\\x86_64\\xlua.dll
pause

第二行Visual Studio 14 2015 Win64为你的C/C++编译环境,配置出错会有提示。出错后按照提示改成你自己的VS版本描述。

常见错误

  1. ‘cmake’is not recognized…:cmake安装成功了吗?环境变量有吗?重启电脑了吗?cmd下手动输入cmake -h有提示吗?
  2. 提示没有C/C++编译器(关键字:Compiler):VS版本配置对了吗,编译器里确定安装了C/C++的编译器吗?
  3. 该改的都改了,怎么还报同样的错误:cmake运行会有Cache,出错后删除之前生成的东西!
  4. 其他问题,没碰到过。

Linux(android)

如果你在Win下使用Unity,并且需要打包到安卓,请提前添加并确保该平台扩展无异常。(我在Win+Unity下已经万事俱备,但是等到打包需要的时候卡在了Android的扩展上。。。)

所需工具:

  1. Linux操作系统。(本人Win7下Ubuntu虚拟机,Cygwin不行!同理Git命令执行sh文件也不行!!
  2. xLua的源码。(传送门https://github.com/Tencent/xLua,其下的build目录即为源码)
  3. Android NDK(尝试r13不行,可能姿势不对,建议和作者一样使用r10e
  4. cmake。(本人3.7.2)
  5. 第三方扩展的源码(本人只加了官方教程中的rapidjson)。
  6. 一定的英文基础,一定的耐心。可能需要一定的Shell基础和linux操作系统的基本知识。

具体流程:

  1. 阅读官方文档
  2. 安装cmake。
  3. 修改CMakeLists.txt文件(本人不会,照着例子做)
  4. 修改sh文件
  5. 添加源码文件

sh文件只知道两个参数:
export ANDROID_NDK=/home/ezhex1991/Downloads/android-ndk-r10e配置Android NDK的路径,根据自己情况改,路径最好不要有空格
-DANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-clang3.6配置toolchain,我也不知道是干啥的,但是必须保证你的ndk/toolchains/目录下有同名目录,如果和xLua作者一样用r10e的NDK,那么不用修改,因为Android的库有v7a和x86两个版本,所以要改就得改两处。个人使用r13失败,所以强烈建议用r10e。

常见错误

本来之前花了很久没有编译成功,后来重新下载后只改了一下NDK目录就OK了,所以关键还是linux的使用上出了问题结果把参数改乱了,所以:
1. 如果你之前没有linux系统的基础,请先尝试使用linux
2. 和win下一样,cmake命令需要环境变量,需要使用linux命令行terminal添加,具体方法请自行百(gu)度(ge)。
3. linux和Win的文本编码可能会有区别(换行符),会造成sh文件无法执行,网上的解决办法乱七八糟根本起不到作用!最简单的方式就是在linux下全选复制粘贴
4. NDK路径如果始终配置不对,请直接在NDK目录下运行terminal,按照显示的目录配置
5. 用r10e,用r10e,用r10e。
6. 失败了请重头再来!从头再来!从头再来!

ios/OSX

我没用过。。。xLua群号:612705778

以上是关于xLua - 第三方扩展的添加和编译的主要内容,如果未能解决你的问题,请参考以下文章

Unity 游戏用XLua的HotFix实现热更原理揭秘

添加xLua到项目中和遇到的一些坑

nginx已安装完毕,如何再添加第三方模块?

php中添加新模块支持

xlua中hotfix简单实用

Xlua热更新