在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
lua发布的代码中,本身提供了makefile用来在多个平台上编译lua,但是针对windows,它提供的是mingw: mingw: $(MAKE) "LUA_A=lua51.dll" "LUA_T=lua.exe" \ "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ "MYCFLAGS=-DLUA_BUILD_AS_DLL" "MYLIBS=" "MYLDFLAGS=-s" lua.exe $(MAKE) "LUAC_T=luac.exe" luac.exe 本质上来讲,还是GNU那套工具链。 这不是native的windows的做法 - 真正native的做法是用Visual Studio编译,链接到微软提供的crt库。 有人提供了一套visual studio的solution:http://lua-users.org/wiki/BuildingLua, 如此你不但要维护多个工程文件,还要维护多个visual studio的版本(或者自动migration), 既然premake继承了lua的良好传统,用简洁而又优美的方式实现跨平台的编译;lua理应享受这一自己带来的便利: solution 'lua' configurations {'Debug', 'Release'} platforms {'x32', 'x64'} if os.get() == "windows" then defines '_CRT_SECURE_NO_WARNINGS' end -- the lua library project 'lualib' targetname 'lua' -- rename the target library to lua kind 'StaticLib' language 'C' files {'lapi.c', 'lcode.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'} -- the lua interpret project 'lua' kind 'ConsoleApp' language 'C' links 'lualib' if os.get() == "linux" then links {'m'} end files 'lua.c' -- the lua compiler project 'luac' kind 'ConsoleApp' language 'C' links 'lualib' files 'luac.c'
编译lua一般需要知道下面几个文件:
lua一般编译成三个部分,lua库, lua解释器与luac编译器,这些target的source在doc/readme.html中都有说明: library: 好了,据此写出一个极其简单的premake4 solution: 在windows下编译:
linux下:
|
请发表评论