编译tolua——1、编译工具和环境说明

这篇具有很好参考价值的文章主要介绍了编译tolua——1、编译工具和环境说明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
1、编译工具和环境说明
2、基础编译tolua
3、以pbc为例子,添加第三方库
4、更新luaJit
大家好,我是阿赵。
之前有朋友问我编译tolua相关的问题。虽然网上也有很多相关的资料可以查询,但我感觉自己也写一篇,作为一个记录也不错。不过一篇文章要把所有内容都说完,可能有点长,所以把整个过程分开几篇文章写一下。这一篇主要是讲个概述,说一下编译需要的工具和环境,源码的下载,还有文件夹的说明。

一、什么是tolua

其实能看这篇文章的人,估计都知道tolua是什么。不过我也啰嗦的说一下。
首先,lua是一种轻量化的脚本语言,不需要编译就能运行,很适合作为游戏热更新使用。
然后,tolua简单来说,就是可以实现在c#调用lua脚本的一个库。
使用Unity引擎开发游戏,可以通过tolua,加载和运行lua脚本。然后lua脚本作为一种文本资源,可以通过热更新的形式修改代码。

二、为什么需要编译tolua

由于tolua源码是c语言,然后我们想在不同的平台下使用这个tolua,比如
1、PC
2、OSX
3、安卓
4、iOS
5、等
如果只是想用tolua的基础功能,那么下载别人已经编译好的库来用也是可以的。
不过很多时候我们是想添加自己的功能给tolua使用,比如添加一些第三方库,添加一些自己写的方法,或者更新某些库之类。
在这些情况下,就需要自己对tolua重新编译。

三、编译工具

首先明确一点,不同平台的编译,需要不同的工具。

1、PC、安卓

PC和安卓的库可以在Windows系统下面编译,使用的工具是mingw,可以去官网下载
下载地址
编译tolua——1、编译工具和环境说明

需要注意的是,运行的批处理有区分32位和64位。
因为不管是pc还是安卓,编译的时候都区分32位和64位的,所以使用mingw编译的时候也需要注意,要用对应位数的批处理程序来执行。

2、OSX、iOS

OSX和iOS平台的编译,就需要一台苹果的MAC电脑了。这是因为,实际上的编译过程是需要Xcode来编译的,所以在Windows应该是做不到的。
所以,准备一台MAC电脑,然后下载好Xcode就行了。

四、tolua源码下载

这里有2个选择

1、下载官方tolua最新版

下载地址
编译tolua——1、编译工具和环境说明

这个官方版本其实也已经很久没有人在维护了

2、下载别人配置好的V2版本

下载地址
编译tolua——1、编译工具和环境说明

这个版本最后一次维护也是几年前了。

这两个版本的区别在于,官方版本是一个比较纯净的版本,不带第三方库,而V2版本,是已经添加了一些第三方库的,比如sqlite、pbc、sproto。
为了能更单纯的说明问题,所以下面我会以官方的纯净版本作为说明。

五、文件夹说明

编译tolua——1、编译工具和环境说明

下载完之后,把里面的内容解压出来。我建议是在某个盘符下建一个tolua文件夹,然后把东西拷贝进去。因为在编译的时候,我们要用命令行工具跳转到这个文件夹,所以不建议放在很复杂结构的文件夹里面去。
第一次看到这个文件夹,估计很多人都会有点蒙,不知道这堆东西是干什么用的,包括我自己也是这样。
其实划分一下,可以分为这些类别:

1、对应平台设置文件夹

这些文件夹包括:
1.android
2.iOS
3.macjit
4.macnojit
5.ubuntu
6.window
这些文件夹,都是发布对应平台的时候需要用到的,其中
1.android文件夹,是存放编译安卓平台时对应的打包列表Android.mk文件的
2.iOS、macjit、macnojit这三个是编译iOS和OSX时的xcode工程的文件夹
3.ubuntu、window是发布这两个平台时用来编译.a文件的中间存放文件夹。

2、编译完成的输出文件

这里指的是Plugins文件夹
编译tolua——1、编译工具和环境说明

这里面存放的是各个平台编译出来,最终使用的库文件,比如Windows平台的dll文件,安卓平台的so文件,iOS平台的.a文件等。

3、第三方库文件夹

这个官方的tolua_runtime-master里面有:
1.cjson
2.luajit-2.1
3.luasocket
这些都是需要编译的c语言源码
如果我们需要添加其他第三方库,或者添加自己写的代码,也是通过这种形式去存放。其实放在哪个文件夹,问题都不是很大,因为pc和安卓平台的输入是需要指定路径的,苹果的xcode编译,也是需要在项目里面配置包含库的。

4、编译批处理文件

后缀为sh的文件,这里包括了
编译tolua——1、编译工具和环境说明

这些文件,其实就是各种平台编译时的批处理文件。
打开其中一个文件看看,比如build_win64.sh:
#!/bin/bash

# 64 Bit Version
mkdir -p window/x86_64

cd luajit-2.1
mingw32-make clean

mingw32-make BUILDMODE=static CC="gcc -m64 -O2" XCFLAGS=-DLUAJIT_ENABLE_GC64
cp src/libluajit.a ../window/x86_64/libluajit.a
mingw32-make clean

cd ..

gcc -m64 -O2 -std=gnu99 -shared \
 tolua.c \
 int64.c \
 uint64.c \
 pb.c \
 lpeg.c \
 struct.c \
 cjson/strbuf.c \
 cjson/lua_cjson.c \
 cjson/fpconv.c \
 luasocket/auxiliar.c \
 luasocket/buffer.c \
 luasocket/except.c \
 luasocket/inet.c \
 luasocket/io.c \
 luasocket/luasocket.c \
 luasocket/mime.c \
 luasocket/options.c \
 luasocket/select.c \
 luasocket/tcp.c \
 luasocket/timeout.c \
 luasocket/udp.c \
 luasocket/wsocket.c \
 -o Plugins/x86_64/tolua.dll \
 -I./ \
 -Iluajit-2.1/src \
 -Iluasocket \
 -lws2_32 \
 -Wl,--whole-archive window/x86_64/libluajit.a -Wl,--no-whole-archive -static-libgcc -static-libstdc++

可以看到,里面都是一些编译的命令
还有一个link_arm64.bat文件,是编译安卓64位时使用的批处理。

5、其他源码文件

编译tolua——1、编译工具和环境说明

看到一些散放的.h或者.c文件,这些都是编译时需要的源码,其实我觉得可以建一个文件夹专门存放的,毕竟编译是需要的文件,都是有地方可以指定路径的。

六、大概的打包流程

到这里,我们大概能得出一个概念,我们编译这个东西的流程是:
1、准备好工具和源码
2、把需要添加的代码放进去项目
3、去对应的平台的文件夹或者批处理文件添加需要编译的文件
4、运行工具,编译
5、去Plugins的对应文件夹拿到编译好的文件,使用。
过程是这么简单,但实际操作起来总会出现各种问题,一篇文章内容太多也不合适,下一篇文章将会实际编译一下看看。文章来源地址https://www.toymoban.com/news/detail-476567.html

到了这里,关于编译tolua——1、编译工具和环境说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】各目录说明

    【常见目录说明】 目录 /bin 存放二进制可执行文件( ls ,cat,mkdir等), 常用命令 一般都在这里。 / etc 存放 系统管理和配置 文件 / home 存放所有用户文件的根目录 ,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 / usr 用于存放系统应用程序,比较重要

    2024年01月17日
    浏览(73)
  • elasticsearch目录及配置参数说明

    存放ES启动、关闭等脚本文件 存放执行文件,例如启动脚本、密钥工具等 ES的配置文件所在的目录,其中有三个主要的配置文件 elasticsearch.yml是用于ES的最主要的配置文件 jvm.options用于配置ES JVM设置 log4j2.properties用于配置ES 日志记录的属性 ES自带的JDK目录 默认的索引数据存储

    2024年02月16日
    浏览(47)
  • 2023 华为OD机试备考攻略 以及题库目录分值说明 考点说明

    2023年11月份,华为官方已经将 华为OD机考:OD统一考试(A卷 / B卷)切换到 OD统一考试(C卷)和 OD统一考试(D卷) 。 目前在考C卷,经过两个月的收集整理, C卷真题已基本整理完毕 抽到原题的概率为2/3到3/3, 也就是最少抽到两道原题。 请注意:大家刷完C卷真题,最好要把

    2023年04月16日
    浏览(105)
  • 30天精通Nodejs--目录与说明

    说明 本系列博客主要针对nodejs零基础的小伙伴,涵盖了Node.js从基础到高级的各个方面。 前置条件,有js的基础,了解css和html。 nodejs版本20.8.1。 目录 基础知识 第1天:基础介绍 第2天:模块系统与npm 第3天:异步编程 第4天:搭建一个web服务器 常用模块 第5天:Events 第6天:

    2024年02月08日
    浏览(48)
  • unity tolua热更新框架教程(2)

    增加脚本luamain,继承luaclient 建立第一个场景GameMain,在对象GameMain挂载脚本LuaMain,启动场景 看到打印,lua被成功加载 lua入口及调用堆栈 这里会执行main.lua文件的main函数 在此处配置C#导出的代码 实例 导出logexport类,添加代码后 生成wrap文件 这样lua即可调用C#函数 luamain添加

    2024年02月09日
    浏览(31)
  • Unity ToLua热更框架使用教程(1)

    从本篇开始将为大家讲解ToLua在unity当中的使用教程。 Tolua的框架叫LuaFramework,首先附上下载链接: https://github.com/jarjin/LuaFramework_UGUI_V2 这个地址的是UGUI的。 下载完之后导入项目,首先,我们要先让这个项目跑起来。 首先点击Lua-Clear wrap files,清除所有wrap文件。 然后点击L

    2024年02月07日
    浏览(38)
  • 请列举出Tomcat安装目录下的子目录,并对其进行简要说明

    Tomcat 安装目录下的子目录包括: bin:存放 Tomcat 的启动、停止脚本以及其他工具。 conf:存放 Tomcat 的配置文件,例如 server.xml、web.xml 等。 lib:存放 Tomcat 的核心 jar 包以及其他库文件。 logs:存放 Tomcat 的日志文件。 temp:存放 Tomcat 运行过程中生成的临时文件。 webapps:存放

    2024年02月08日
    浏览(48)
  • 对于织梦CMS各目录内文件的说明详解

    鉴于很多新手朋友不知道织梦很多目录和文件具体有何作用,而现互联网亦没有相对全面的dedecms文件目录解说,so,小编在相对全面的基础上整理了以下目录文件。 以下一些目录对应的文件和代表的含义均是在相对详细下完成的,如若有错误请联系我们指出。了解织梦文件目

    2024年02月02日
    浏览(48)
  • 微信小程序的目录结构及页面结构的说明

    ● pages 用来存放所有小程序的页面 ● utils 用来存放工具性质的模块 ● app.js 小程序的项目入口地址 ● app.json 小程序项目的全局配置文件,“包括小程序中的所有页面路径,窗口外观,界面表现,底部tab等” 。 ● app.wxss 小程序项目的全局样式文件 ● project.config.json 项目的

    2024年02月03日
    浏览(36)
  • Vue3.0极速入门- 目录和文件说明

    以下文件均为npm create helloworld自动生成的文件目录结构 目录截图 目录说明 目录/文件 说明 node_modules npm 加载的项目依赖模块 src 这里是我们要开发的目录,基本上要做的事情都在这个目录里 assets 放置一些图片,如logo等。 components vue组件文件的存放目录,也是主要的工作目录

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包