在BCB中使用Lua
由于想要在一個(gè)原生應(yīng)用里提供腳本功能,而Python的發(fā)布不能不說是一件麻煩事。因?yàn)樗枰哪_本功能很簡單,所以決定試試傳說中的Lua。
第一步,下載源碼。雖然Lua有提供二進(jìn)制版本下載,但是因?yàn)槲沂怯肨urbo C++ Explorer(即C++Builder的免費(fèi)版),所以我決定還是自己編譯一下源碼。下載位置當(dāng)然是Lua的官方網(wǎng)站:http://www.lua.org。
第二步,編譯安裝。源碼里只提供了GCC用的MAKE文件和VC用的一個(gè)BAT文件,BCB則需要自己動(dòng)手了。開始不知道什么地方搞錯(cuò),總是編譯不對(duì)——雖然編譯成功,但是執(zhí)行出錯(cuò)。折騰了一陣子才總算大功告成,相應(yīng)的編譯參數(shù)如下:
- bcc32 -DNDEBUG -DNO_STRICT;_NO_VCL -Hc -tWD -w-par -O2 -b- -k- -vi
- -tWM -tW- -c -DLUA_BUILD_AS_DLL -P- l*.c del lua.obj del luac.obj ilink32 -Tpd -Gn -j -x -Gi c0d32.obj lapi.obj lauxlib.obj
- lbaselib.obj lcode.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, lua51.dll, , import32.lib cw32mt.lib, , del *.tds del *.obj bcc32 -D_isatty=isatty -DNDEBUG -DNO_STRICT;_NO_VCL -Hc -w-par
- -O2 -b- -k- -vi -tWC -tWM -tW- -c -DLUA_BUILD_AS_DLL -P- lua.c ilink32 -Tpe -Gn -j -x c0x32.obj lua.obj, lua51.exe, ,
- import32.lib lua51.lib cw32mt.lib, , del *.tds del *.obj
第三步,Hello world。運(yùn)行編譯成功的lua51.exe試試:
- print "Hello world!"
搞定。
剩下的工作就是讀云風(fēng)譯的LUA文檔學(xué)習(xí)了——唉,上了年紀(jì)以后學(xué)習(xí)新東西的難度大多了。
原文鏈接:http://tech.it168.com/j/2008-02-17/200802171040545.shtml