xlua 下载包中提供lua5.3的库文件,如果需要luajit或者自己添加删除的就需要自己进行编译。 Lua53版本没那么多事,主要是LuaJIt版本折腾的比较久。

工具

  • Xlua使用CMake进行编译,不管是哪个平台都需要提前安装
  • Windows 下 Visual Studio 2015 , MAC下XCODE

Windows(.dll)

  1. luajit 版本 默认使用的是 Visual Studio 2015
  2. 注意VS140COMNTOOLS环境变量以及该路径是否存在vcvars64.bat\vcvars32.bat, 不存在的话重装Visual Studio 2015或者别的地方复制过去
  3. lua53 使用cmake生成Visual Studio 2015 工程

Android(.so)

稍稍有点蛋疼,尝试过在WIndow下使用Cygwin64进行编译,不过一直提示“不可识别二进制数据“ ,解决不了就直接转Mac平台了。

Mac 平台下编译Android LuaJit 版本 链接库注意:

  1. 使用Mac OS X平台的NDK版本 android-ndk-r10e-darwin-x86_64.zip
  2. 注意NDK路径配置,不能确认就使用echo 输出看下,Xlua默认是放在User/用户名路径下
  3. 根据自身平台来选择对应的NDK,修改NDKP 中平台为darwin-x86_64(以64位为例哈,间咨询过xlua的作者,他是在linux系统下编译的,如果你是在linux下则不用修改),修改后NDKP:
     NDKP=$NDKVER/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-



4. 使用GCC取代Clang, Ndk中不存在arm-linux-androideabi-clang3.6 ,可以通过修改luajit /src/makefile 文件 切换编译器。参考:mac平台下LuaJIT-2.1.0-beta2 编译android i686-linux-android-clang: Command not found

修改之后:

ifeq (Windows,$(findstring Windows,$(OS))$(MSYSTEM)$(TERM))
HOST_SYS= Windows
HOST_RM= del
else
HOST_SYS:= $(shell uname -s)
ifneq (,$(findstring MINGW,$(HOST_SYS)))
HOST_SYS= Windows
HOST_MSYS= mingw
endif
ifneq (,$(findstring CYGWIN,$(HOST_SYS)))
HOST_SYS= Windows
HOST_MSYS= cygwin
endif
# Use Clang for OSX host. 直接采用默认gcc
#ifeq (Darwin,$(HOST_SYS))
# DEFAULT_CC= clang
#endif
endif
  1. 必要时先删除编译产生的文件夹,有时候会出现错误:
Make Error: The current CMakeCache.txt directory /Users/rubbyzhang/Perforce/rubbyzhang_RUBBYZHANG-MC0_7887/Redfox/Branches/OnlineBattle_xlua/ThirdParty/xLua-master/build/build_lj_x86/CMakeCache.txt is different than the directory c:/Users/rubbyzhang/Desktop/Lua/xLua-master/build/build_lj_x86 where CMakeCache.txt was created. This may result in binaries being created in the wrong place. If you are not sure, reedit the CMakeCache.txt
  1. 注意权限问题chmod基本可以解决,如果解决不了可以看下账号的权限

IOS(.a)

Mac平台下,xcode安装好,基本就没啥问题了

增加删除第三方库

可以参考xlua文档<增加删除第三方库>, 修改Cmakelists.txt文件以及C#部分,以增加lpeg、struct为例,可以在cmakelist.txt中增加设置:

# 增加Lpeg
set (LPEG_SRC pb/source/lpeg.c pb/source/struct.c)
set_property(
SOURCE ${LPEG_SRC}
APPEND
PROPERTY COMPILE_DEFINITIONS
LUA_LIB
)
list(APPEND THIRDPART_INC pb/include)
set (THIRDPART_SRC ${THIRDPART_SRC} ${LPEG_SRC})

修改好的下载链接:http://pan.baidu.com/s/1sl12IFN

参考:

mac平台下LuaJIT-2.1.0-beta2 编译android i686-linux-android-clang: Command not found

WIndows 使用VS编译 Lua5

如何编译各平台使用的库-以编译tolua为例

msvc交叉编译:使用vcvarsall.bat设置命令行编译环境

最新文章

  1. 【细说Java】关于main方法的一些细节
  2. 关于ScrollView和listview的冲突关于的滑动和宽度
  3. Linux14.04安装JDK
  4. jquery_dialog实现效果
  5. 一次PostgreSql数据迁移,使用nodejs来完成
  6. Centos安装配置Postfix邮件服务器
  7. mac install php dev
  8. Windows下用Mingw编译Boost.Regex库
  9. C#读书笔记之object类的基本方法
  10. SQLite用法
  11. oracle 实例启动报错(ORA-01078: failure in processing system parameters )
  12. JavaWeb 后端 &lt;八&gt; 之 JDBC基礎(全)
  13. ES6 for-of循环和迭代器使用细节
  14. Docker学习笔记 - Docker容器之间的连接
  15. 借助Bodymovin播放svg动画
  16. 解析JSON的三种方式
  17. 在JS中如何判断所输入的是一个数、整数、正数、非数值?
  18. C#委托。
  19. BZOJ4858 : [Jsoi2016]炸弹攻击 2
  20. squid代理

热门文章

  1. IIS配置文件上传大小限制
  2. Linux配置2个或多个Tomcat同时运行
  3. sql-索引的作用(超详细)
  4. php环境安装
  5. 我从Angular 2转向Vue.js, 也没有选择React
  6. CSS字体样式属性
  7. 网页导航栏 html + css的代码实现
  8. HDU 3032 Nim or not Nim?(Multi-Nim)
  9. iphone屏幕镜像 屏幕镜像怎么用
  10. 1.Odoo产品分析系列 – 目录