VS2010编译Lua程序
来源:互联网 发布:京颐股份 趣医网 知乎 编辑:程序博客网 时间:2024/05/16 15:49
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 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 *.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/
- VS2010编译Lua程序
- VS2010编译Lua程序
- VS2010编译Lua程序
- VS2010编译、调用Lua程序
- VS2010编译Lua程序(lua-5.2.3)
- VS2010编译Lua程序(lua-5.2.3)
- VS2010编译Lua程序5.1.5
- vs2010编译lua 5.2.1
- Lua环境搭建编译[Lua5.2+VS2010]
- 用VS2010编译LUA静态库
- VS编译Lua程序,生成lua.lib
- VS2010下编译Python程序
- 使用vs2010编译lua5.1源码生成lua.lib
- VS2010编译MFC程序出错的原因
- vs2010编译具备管理员权限的程序
- vs2010 命令行编译C/C++程序
- 编译linux下的lua程序失败
- 编译 cocos2d-x 程序:eclipse (lua)
- 【OpenGL】MIPS平台上Linux系统中安装OpenGL 2.0库(Mesa库)
- 数据库存储文字文件和二进制文件
- Android学习笔记之编译系统(二)编译框架二
- JAVA 内部类
- java UncaughtExceptionHandler 处理线程意外中止
- VS2010编译Lua程序
- 9、王爽《汇编语言》笔记_第十二、十三、十四章
- [NOIP]单调队列(更新中)
- JNDI与JMS
- Arraylist的定义和使用
- centos6.0 安装KVM 升级
- JAVA 匿名内部类
- CDN(content delivery network)技术原理
- 数组指针和指针数组