下載Lua代碼,解壓進入src目錄,建立以下build.bat腳本: shell
@echo off del *.obj *.lib *.exe *.dll *.o *.pdb *.exp cl /MD /O2 /W3 /c /DLUA_BUILD_AS_DLL *.c ren lua.obj lua.o ren luac.obj luac.o link /DLL /IMPLIB:lua52.lib /OUT:lua52.dll /DEBUG /PDB:lua52.pdb *.obj link /OUT:lua.exe lua.o lua52.lib lib /out:lua52-static.lib *.obj link /OUT:luac.exe luac.o lua52-static.lib del *.obj mkdir ..\..\lua-5.2 del ..\..\lua-5.2/* copy lua.exe* ..\..\lua-5.2\ copy luac.exe* ..\..\lua-5.2\ copy lua52.* ..\..\lua-5.2\
打開VS控制檯窗口,CD到src目錄,執行build.bat api
@rem Script to build Lua with MSVC. @echo off @if not defined INCLUDE goto :FAIL @setlocal @if "%1"=="clean" goto :CLEAN @set CC=cl @set LD=link @set AR=lib @set RC=rc @set CP=copy @set DBG_CFLAGS=/nologo /c /Zi /Od /Ob0 /RTC1 /MD @set CFLAGS=/nologo /c /O2 /W3 @set CFLAGS_MD=/MD @set CFLAGS_MT=/MT @set LDFLAGS= @set LUA_CFLAGS=/DNDEBUG /D_WINDOWS /DWIN32 /DWINNT @set LUA_SRC=lapi.c lauxlib.c lbaselib.c lbitlib.c lcode.c lcorolib.c lctype.c ldblib.c ldebug.c^ ldo.c ldump.c lfunc.c lgc.c linit.c liolib.c llex.c lmathlib.c lmem.c loadlib.c lobject.c^ lopcodes.c loslib.c lparser.c lstate.c lstring.c lstrlib.c ltable.c ltablib.c ltm.c lundump.c^ lutf8lib.c lvm.c lzio.c @set DEP_LIB= cd src @rem clean del *.lib *.obj *.manifest *.exp *.dll *.exe @rem Multithreaded, dynamic link %CC% %CFLAGS_MD% %CFLAGS% %LUA_CFLAGS% %LUA_SRC% %AR% /OUT:lua53-md.lib *.obj %LD% /DLL /OUT:lua53-md.dll *.obj del *.obj *.manifest @rem Multithreaded, static link %CC% %CFLAGS_MT% %CFLAGS% %LUA_CFLAGS% %LUA_SRC% %AR% /OUT:lua53-mt.lib *.obj %LD% /DLL /OUT:lua53-mt.dll *.obj del *.obj *.manifest @rem Debug, /MD %CC% %DBG_CFLAGS% %LUA_CFLAGS% %LUA_SRC% %AR% /OUT:lua53-dbg.lib *.obj %LD% /DLL /OUT:lua53-dbg.dll *.obj del *.obj *.manifest @rem Multithreaded, dynamic lua.exe %CC% %CFLAGS_MT% %CFLAGS% %LUA_CFLAGS% lua.c %LD% /OUT:lua.exe lua.obj lua53-mt.lib %DEP_LIB% del *.obj *.manifest *.exp @rem Multithreaded, dynamic luac.exe %CC% %CFLAGS_MT% %CFLAGS% %LUA_CFLAGS% luac.c %LD% /OUT:luac.exe luac.obj lua53-mt.lib %DEP_LIB% del *.obj *.manifest *.exp @goto :COPY :COPY xcopy *.exe ..\out\bin\ /s /e /y xcopy *.lib ..\out\lib\ /s /e /y xcopy *.dll ..\out\lib\ /s /e /y md ..\out\include copy lua.h ..\out\include\ /y copy lauxlib.h ..\out\include\ /y copy luaconf.h ..\out\include\ /y copy lualib.h ..\out\include\ /y @goto :CLEAN :CLEAN del *.lib *.obj *.manifest *.exp *.dll *.exe @goto :END :FAIL @echo You must open a "Visual Studio .NET Command Prompt" to run this script @goto :END :END PAUSE