Unity——编译tolua

参照这两篇教程编译tolua
https://zhuanlan.zhihu.com/p/81935911
https://github.com/NewbieGameCoder/tolua_runtime/wiki

从mingw的shell执行build_xx.sh时报错。

$ /h/Lua/tolua_runtime-1.0.8.584/build_win64.sh
/h/Lua/tolua_runtime-1.0.8.584/build_win64.sh: 第 5 行:cd: luajit-2.1: No such file or directory
mingw32-make: *** No rule to make target 'clean'.  Stop.
mingw32-make: *** No targets specified and no makefile found.  Stop.
cp: 无法获取"src/libluajit.a" 的文件状态(stat): No such file or directory
mingw32-make: *** No rule to make target 'clean'.  Stop.
gcc.exe: error: tolua.c: No such file or directory
gcc.exe: error: int64.c: No such file or directory
gcc.exe: error: uint64.c: No such file or directory
gcc.exe: error: pb.c: No such file or directory
gcc.exe: error: lpeg.c: No such file or directory
gcc.exe: error: struct.c: No such file or directory
gcc.exe: error: cjson/strbuf.c: No such file or directory
gcc.exe: error: cjson/lua_cjson.c: No such file or directory
gcc.exe: error: cjson/fpconv.c: No such file or directory
gcc.exe: error: luasocket/auxiliar.c: No such file or directory
gcc.exe: error: luasocket/buffer.c: No such file or directory
gcc.exe: error: luasocket/except.c: No such file or directory
gcc.exe: error: luasocket/inet.c: No such file or directory
gcc.exe: error: luasocket/io.c: No such file or directory
gcc.exe: error: luasocket/luasocket.c: No such file or directory
gcc.exe: error: luasocket/mime.c: No such file or directory
gcc.exe: error: luasocket/options.c: No such file or directory
gcc.exe: error: luasocket/select.c: No such file or directory
gcc.exe: error: luasocket/tcp.c: No such file or directory
gcc.exe: error: luasocket/timeout.c: No such file or directory
gcc.exe: error: luasocket/udp.c: No such file or directory
gcc.exe: error: luasocket/wsocket.c: No such file or directory
gcc.exe: error: window/x86_64/libluajit.a: No such file or directory

这个是因为mingw找不到tolua相关的路径,不知道是教程少写了步骤,还是我对教程的理解有误,反正最后自己瞎捣鼓出来了。

解决方法:

  1. 先打开cmd,cd到mingw安装路径
-- cmd:
> cd xxx/msys64
  1. cmd启动mingw的shell,以64位为例
-- cmd:
> mingw64_shell.bat
  1. mingw的shell里cd到tolua源码路径
-- shell:
$ cd x:/xxx/tolua_runtime-1.0.8.584
  1. mingw的shell里执行对应平台的build,这里注意shell里执行文件时和cmd里的命令不一样,需要文件前加上"./"
-- shell:
$ ./build_win64.sh

编译成功,生成的dll在 tolua源码路径/Plugins/对应平台/ 下。

$ ./build_win64.sh
H:/Lua/msys64/mingw64/bin/mingw32-make -C src clean
mingw32-make[1]: Entering directory 'H:/Lua/tolua_runtime-1.0.8.584/luajit-2.1/src'
rm -f luajit.exe libluajit.a lua51.dll host/minilua.exe host/buildvm.exe lj_vm.S lj_bcdef.h lj_ffdef.h lj_libdef.h lj_recdef.h lj_folddef.h host/buildvm_arch.h jit/vmdef                                                                              .lua *.o host/*.o *.obj *.lib *.exp *.dll *.exe *.manifest *.pdb *.ilk
mingw32-make[1]: Leaving directory 'H:/Lua/tolua_runtime-1.0.8.584/luajit-2.1/src'
==== Building LuaJIT 2.1.0-beta3 ====
H:/Lua/msys64/mingw64/bin/mingw32-make -C src
mingw32-make[1]: Entering directory 'H:/Lua/tolua_runtime-1.0.8.584/luajit-2.1/src'
HOSTCC    host/minilua.o
HOSTLINK  host/minilua.exe
DYNASM    host/buildvm_arch.h
HOSTCC    host/buildvm.o
HOSTCC    host/buildvm_asm.o
HOSTCC    host/buildvm_peobj.o
HOSTCC    host/buildvm_lib.o
HOSTCC    host/buildvm_fold.o
HOSTLINK  host/buildvm.exe
BUILDVM   lj_vm.o
CC        lj_gc.o
BUILDVM   lj_ffdef.h
CC        lj_err.o
CC        lj_char.o
BUILDVM   lj_bcdef.h
CC        lj_bc.o
CC        lj_obj.o
CC        lj_buf.o
CC        lj_str.o
CC        lj_tab.o
CC        lj_func.o
CC        lj_udata.o
CC        lj_meta.o
CC        lj_debug.o
CC        lj_state.o
CC        lj_dispatch.o
CC        lj_vmevent.o
CC        lj_vmmath.o
CC        lj_strscan.o
CC        lj_strfmt.o
CC        lj_strfmt_num.o
CC        lj_api.o
CC        lj_profile.o
CC        lj_lex.o
CC        lj_parse.o
CC        lj_bcread.o
CC        lj_bcwrite.o
CC        lj_load.o
CC        lj_ir.o
CC        lj_opt_mem.o
BUILDVM   lj_folddef.h
CC        lj_opt_fold.o
CC        lj_opt_narrow.o
CC        lj_opt_dce.o
CC        lj_opt_loop.o
CC        lj_opt_split.o
CC        lj_opt_sink.o
CC        lj_mcode.o
CC        lj_snap.o
CC        lj_record.o
CC        lj_crecord.o
BUILDVM   lj_recdef.h
CC        lj_ffrecord.o
CC        lj_asm.o
CC        lj_trace.o
CC        lj_gdbjit.o
CC        lj_ctype.o
CC        lj_cdata.o
CC        lj_cconv.o
CC        lj_ccall.o
CC        lj_ccallback.o
CC        lj_carith.o
CC        lj_clib.o
CC        lj_cparse.o
CC        lj_lib.o
CC        lj_alloc.o
lj_alloc.c:176:14: warning: 'DIRECT_MMAP' defined but not used [-Wunused-function]
 static void *DIRECT_MMAP(size_t size)
              ^
CC        lib_aux.o
BUILDVM   lj_libdef.h
CC        lib_base.o
CC        lib_math.o
CC        lib_bit.o
CC        lib_string.o
CC        lib_table.o
CC        lib_io.o
CC        lib_os.o
CC        lib_package.o
CC        lib_debug.o
CC        lib_jit.o
CC        lib_ffi.o
CC        lib_init.o
AR        libluajit.a
CC        luajit.o
BUILDVM   jit/vmdef.lua
LINK      luajit.exe
OK        Successfully built LuaJIT
mingw32-make[1]: Leaving directory 'H:/Lua/tolua_runtime-1.0.8.584/luajit-2.1/src'
==== Successfully built LuaJIT 2.1.0-beta3 ====
H:/Lua/msys64/mingw64/bin/mingw32-make -C src clean
mingw32-make[1]: Entering directory 'H:/Lua/tolua_runtime-1.0.8.584/luajit-2.1/src'
rm -f luajit.exe libluajit.a lua51.dll host/minilua.exe host/buildvm.exe lj_vm.S lj_bcdef.h lj_ffdef.h lj_libdef.h lj_recdef.h lj_folddef.h host/buildvm_arch.h jit/vmdef.lua *.o host/*.o                                                              *.obj *.lib *.exp *.dll *.exe *.manifest *.pdb *.ilk
mingw32-make[1]: Leaving directory 'H:/Lua/tolua_runtime-1.0.8.584/luajit-2.1/src'
编译成功
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342