VS2010编译Lua程序
1、下载Lua源码 http://www.lua.org/download.html 最新版的5.2.1
a 下载后解压到一个目录下,这里假设解压到D:\lua-5.2.12、在VS2010中新建一个静态库项目,项目命名为CompileLua
a 选择新建 Win32 console project
b 在wizard界面选择 static Library;不选择Precomplied Header
3、往工程中添加代码 Add Existing Item,将所有头文件源文件(不包括luac.c、lua.c)加入project
4、 生产项目 Build
如果是debug mode 将在Debug目录下看到一个CompileLua.lib文件,Release mode的lib文件在Release文件下
测试:
后面添加一个项目尝试在C/C++代码中调用lua1、在解决方案中添加一个 Win32 console project,项目名称命名为testlua,后面wizard界面中的选项无需修改
2、添加对头文件的include directory
Configuration Properties -> C/C++-> General -> Additional Include Directories
添加D:\lua-5.2.1\src
3、源文件加入#pragma comment(lib,"lua.lib")或者
Configuration Properties -> Linker-> Input -> Additional
Dependencies
加入CompileLua.lib
在项目的的在testlua.cpp文件中添加下面的代码
#include <stdio.h> #include <lua.h> #include <lualib.h> #include <lauxlib.h> #include <luaconf.h> #pragma comment(lib,"lua.lib") int main(int argc, char* argv[]) { lua_State* L = luaL_newstate(); luaL_openlibs(L); luaL_dofile(L, "test.lua"); lua_close(L); return 0; }
test.lua
function show() local index for index = 1,10,1 do print(index) end end show()
输出:
or:
http://www.pondoudou.com/?p=1717
Visual Studio 版本為 2012
作業系統版本為 Windows 7 64bits
Lua 版本為 Lua 5.3.2
編譯流程:
1、將下載到的 Lua 5.3.2 源始碼解壓縮
2、執行 Visual Studio 提供的 命令提示字元
Ex: 開始 -> 所有程式 -> Microsoft Visual Studio 2012 -> Visual Studio Tools -> VS2012 x86 Native Tools 命令提示字元。
3、將下面的程式儲存成 bat (批次檔),檔名可為 VS_Compile.bat。存放路徑為 Lua 5.3.2 源始碼解壓縮後的資料夾內的 src 資料夾。
@rem Script to build Lua under "Visual Studio .NET Command Prompt". @rem Do not run from this directory; run it from the toplevel: etc\luavs.bat . @rem It creates lua51.dll, lua51.lib, lua.exe, and luac.exe in src. @rem (contributed by David Manura and Mike Pall) @setlocal @set MYCOMPILE=cl /nologo /MD /O2 /W3 /c /D_CRT_SECURE_NO_DEPRECATE @set MYLINK=link /nologo @set MYMT=mt /nologo @set LUA_VERSION=5.3.2 @set OUT_FILE_NAME=lua @set COMPILE_FILE_NAME=luac cd src %MYCOMPILE% /DLUA_BUILD_AS_DLL l*.c del lua.obj luac.obj %MYLINK% /DLL /out:%OUT_FILE_NAME%%LUA_VERSION%.dll l*.obj if exist %OUT_FILE_NAME%.dll.manifest^ %MYMT% -manifest %OUT_FILE_NAME%%LUA_VERSION%.dll.manifest -outputresource:%OUT_FILE_NAME%%LUA_VERSION%.dll;2 %MYCOMPILE% /DLUA_BUILD_AS_DLL lua.c %MYLINK% /out:%OUT_FILE_NAME%%LUA_VERSION%.exe lua.obj %OUT_FILE_NAME%%LUA_VERSION%.lib if exist %OUT_FILE_NAME%%LUA_VERSION%.exe.manifest^ %MYMT% -manifest %OUT_FILE_NAME%%LUA_VERSION%.exe.manifest -outputresource:%OUT_FILE_NAME%%LUA_VERSION%.exe %MYCOMPILE% l*.c del lua.obj linit.obj lbaselib.obj ldblib.obj liolib.obj lmathlib.obj^ loslib.obj ltablib.obj lstrlib.obj loadlib.obj %MYLINK% /out:%COMPILE_FILE_NAME%%LUA_VERSION%.exe *.obj if exist %COMPILE_FILE_NAME%%LUA_VERSION%.exe.manifest^ %MYMT% -manifest %COMPILE_FILE_NAME%%LUA_VERSION%.exe.manifest -outputresource:%COMPILE_FILE_NAME%%LUA_VERSION%.exe del *.obj *.manifest cd ..
OR
@setlocal @set LUA_VERSION=5.3.2 @set OUT_FILE_NAME=lua @set COMPILE_FILE_NAME=luac cl /MD /O2 /c /DLUA_BUILD_AS_DLL *.c ren lua.obj lua.o ren luac.obj luac.o link /DLL /IMPLIB:%OUT_FILE_NAME%%LUA_VERSION%.lib /OUT:%OUT_FILE_NAME%%LUA_VERSION%.dll *.obj link /OUT:%OUT_FILE_NAME%%LUA_VERSION%.exe lua.o %OUT_FILE_NAME%%LUA_VERSION%.lib lib /OUT:%OUT_FILE_NAME%%LUA_VERSION%-static.lib *.obj link /OUT:%COMPILE_FILE_NAME%%LUA_VERSION%.exe luac.o %OUT_FILE_NAME%%LUA_VERSION%-static.lib del *.obj *.o4、執行前步驟的 VS_Compile.bat
5、即可以得到 lua*.dll、lua*.exe、luac*.exe
http://blog.spreendigital.de/2015/01/16/how-to-compile-lua-5-3-0-for-windows/
Keep it simple!