編譯lua on windows in vc6命令行

windows lua編譯

<br/>windows

關於luabinaries

luabinaries是http://sourceforge.net/上的一個項目,主要功能是集合lua各個版本的二進制文件。我下載的windows二進制文件包括(lua52.dll lua52.exe luac52.exe wlua5.2.exe),爲了在windows上生成這些文件,它在lua官方給出的源碼中加入了一些文件,幫助其編譯,如給上面的.exe文件加個圖標等等。除了多加了個wmain.c,luabinaries並無修改官方給出的源碼,並且給出的編譯方案好像是tecmake,貌似相似於cmake的東東。api

關於官方給出lua源碼

我從官方下載的lua5.2.2源碼包括2個文件夾:src和doc,2個文件:Makefile和README文件,可謂至關的乾淨。ui

windows上使用vc6編譯官方給出的源碼

解壓官方給出的源碼,在src目錄下新建一個文件夾other,用於存放來自luabinaries項目的: wmain.c lua.ico lua52.def lua_dll.rc lua.rc 5個文件,修改.rc文件中的版本信息。在src目錄下添加一個makefile文件,名爲:makefile-dlldef,編譯的時候就使用nmake /f makefile-dlldef nmake /f makefile-dlldef release= nmake /f makefile-dlldef clean命令來執行,release編譯出的文件要比官方給出的二進制小不少。lua

makefile-dlldef內容

<pre> objs = lapi.obj lauxlib.obj lbaselib.obj lbitlib.obj lcode.obj lcorolib.obj lctype.obj ldblib.obj ldebug.obj ldo.obj ldump.obj lfunc.obj lgc.obj linit.obj liolib.obj llex.obj lmathlib.obj lmem.obj loadlib.obj lobject.obj lopcodes.obj loslib.obj lparser.obj lstate.obj lstring.obj lstrlib.obj ltable.obj ltablib.obj ltm.obj lundump.obj lvm.obj lzio.obj !message nmake usage: !message 'nmake' : build debug version. !message 'nmake release=' : build release version. !message 'nmake clean' : clean workshop !message lkf = /nologo /debug /INCREMENTAL:no /libpath:%MYLIB% lbf = /nologo mtf = -nologo !ifdef release clfcc = /nologo /c /O2 /MD /Zi /DNDEBUG /I%MYINCLUDE% /EHsc clfc = /nologo /c /O2 /MD /Zi /DNDEBUG /I%MYINCLUDE% !else clfcc = /nologo /c /MDd /Zi /I%MYINCLUDE% /EHsc clfc = /nologo /c /MDd /Zi /I%MYINCLUDE% !endif !ifdef release mydll = lua52 all : $(mydll).dll lua52.exe luac52.exe wlua52.exe !else mydll = lua52 all : $(mydll).dll lua52.exe luac52.exe wlua52.exe !endif $(mydll).dll : $(objs) other\lua_dll.res link $(lkf) /out:$@ /dll /def:other\lua52.def $** lua52.exe : lua.obj $(mydll).lib other\lua.res link $(lkf) /out:$@ $** wlua52.exe : wmain.obj lua.obj $(mydll).lib other\lua.res link $(lkf) /out:$@ /subsystem:windows $** luac52.exe : luac.obj $(objs) $(mydll).lib other\lua.res link $(lkf) /out:$@ $** .c.obj: cl $(clfc) /DLUA_COMPAT_MODULE $** wmain.obj : other\wmain.c cl $(clfc) /DLUA_COMPAT_MODULE $** .rc.res: rc $** clean: del *.exe *.obj *.pdb *.dll *.exp *.lib other\*.res </pre>.net

相關文章
相關標籤/搜索