标题: Windows下用TCC编译Lua源码
作者: Demon
链接: https://demon.tw/software/compile-lua-with-tcc.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
心血来潮研究了一下怎么用TCC源码编译Lua。
花了些时间阅读TCC和Lua的帮助文档,得到下面的批处理build-lua.bat:
@echo off rem Author: Demon rem Date: 2012/6/2 rem Website: https://demon.tw set INSTALL_TOP=C:\Lua set INSTALL_BIN=%INSTALL_TOP%\bin set INSTALL_INC=%INSTALL_TOP%\include set INSTALL_LIB=%INSTALL_TOP%\lib if not exist %INSTALL_BIN% mkdir %INSTALL_BIN% if not exist %INSTALL_INC% mkdir %INSTALL_INC% if not exist %INSTALL_LIB% mkdir %INSTALL_LIB% cd src tcc -r -o liblua.a lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c lmathlib.c loslib.c lstrlib.c ltablib.c loadlib.c linit.c tcc -o lua.exe liblua.a lua.c tcc -o luac.exe liblua.a luac.c >nul copy lua.exe %INSTALL_BIN% >nul copy luac.exe %INSTALL_BIN% >nul copy liblua.a %INSTALL_LIB% for %%i in (lua.h luaconf.h lualib.h lauxlib.h lua.hpp) do ( >nul copy %%i %INSTALL_INC% ) %INSTALL_BIN%\lua.exe -i
将其保存到Lua源码的根目录,运行即可。批处理水平不高,写得不好的地方请不要见笑。
赞赏微信赞赏支付宝赞赏
随机文章:
额..
tcc -r -o liblua.a l*.c
起作用否?
后面的貌似等同
copy /y *.h %INSTALL_INC% & copy /y *.hpp %INSTALL_INC%
liblua.a不需要lua.c和luac.c,*.c包含了所有c文件。
同样,include文件夹只需要lua.h luaconf.h lualib.h lauxlib.h lua.hpp,copy *.h会复制所有h文件。
楼主这个编译法好像是5.2+的?
5.1系列源代码的INSTALL里有这么1句
compiler: library, luac.c print.c
5.1的话好像还缺个print.c
tcc -o luac.exe liblua.a luac.c print.c
给5.1的改了一个编译脚本…
https://gist.github.com/3312704
拜謝樓主啊
话说偶太蛋疼了居然写了个适应namke的makefile(tcc用)…
https://github.com/mike2718/lua/blob/master/src/makefile.tcc
P.S.
LZ貌似是老乡啊,有机会出来一起吃老友肿么样~
你是南宁人吧?我家不在南宁,只是曾经去南宁上过学。
LZ出来偶们面基吖w
等我有机会去南宁再说吧。
[…] 很久以前写过一篇《Windows下用TCC编译Lua源码》,现在Lua已经更新到Lua 5.3.2了,想编译一个玩玩,但是发现之前的脚本是把源文件hard code进去的,对于最新版的没法用,于是改进了一下脚本。 […]
请问如果不用 vc ,用tinycc 如何编译Python?
windows内核开发也是用c语言,可以把Python做成内核模块(驱动) 在内核态下跑吗?
一言不合会不会就蓝屏给你看:-D
请教,用TCC怎样编译出lua53.dll?谢谢。