VS2010编译Lua程序

来源:互联网 发布:京颐股份 趣医网 知乎 编辑:程序博客网 时间:2024/05/16 15:49

1、下载Lua源码 http://www.lua.org/download.html 最新版的5.2.1

a 下载后解压到一个目录下,这里假设解压到D:\lua-5.2.1
2、在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++代码中调用lua
1、在解决方案中添加一个 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 indexfor index = 1,10,1 doprint(index)endendshow()

输出:




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 *.manifestcd ..

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 *.cren lua.obj lua.oren luac.obj luac.olink /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 *.objlink /OUT:%COMPILE_FILE_NAME%%LUA_VERSION%.exe luac.o %OUT_FILE_NAME%%LUA_VERSION%-static.lib del *.obj *.o
4、執行前步驟的 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/