使用VS2008编译lua

转自http://blog.163.com/[email protected]/blog/static/68117214201249113216137/

  1. http://www.lua.org/download.html获取最新的lua版本。我下载的是5.2.0版本。
  2. 新建一个VS2008的空控制台工程Lua,然后关闭工程。打开工程文件夹,把*.ncb *.sln *.suo文件删除。新建一个名为VS2008的文件夹,将同级目录下的lua文件夹移动到VS2008目录下。新建一个与VS2008同级的LuaSrc文件夹,将解压出来的lua源文件拷贝到该目录下。
  3. 打开VS2008下Lua目录下的Lua.vcproj工程文件,将Lua.sln解决方案文件保存到VS2008目录下。
  4. 在Lua解决方案下再新建一个Core的静态库工程、一个Standard的静态库工程、一个LuaC的空的控制台工程。注意要把生成的工程的目录设置为和Lua工程同级。
  5. 向Core工程添加如下文件:

lapi.c  lapi.h  lcode.c  lcode.h  lctype.c  lctype.h  ldebug.c  ldebug.h  ldo.c  ldo.h  ldump.c lfunc.c  lfunc.h  lgc.c  lgc.h  llex.c  llex.h  llimits.h  lmem.c  lmem.h  lobject.c  lobject.h lopcodes.c  lopcodes.h  lparser.c  lparser.h  lstate.c  lstate.h  lstring.c  lstring.h  ltable.c ltable.h  ltm.c  ltm.h  lua.h  luaconf.h  lundump.c  lundump.h  lvm.c  lvm.h  lzio.c  lzio.h

  1. 向Standard工程加入以下文件:

lauxlib.c  lauxlib.h  lbaselib.c  lbitlib.c  lcorolib.c  ldblib.c  linit.c  liolib.c  lmathlib.c  loadlib.c loslib.c  lstrlib.c  ltablib.c  lua.h  luaconf.h  lualib.h

  1. 向Lua工程添加以下文件:

lauxlib.h  Lua.c  lua.h  luaconf.h  lualib.h

  1. 向LuaC工程添加以下文件:

lauxlib.h  ldebug.h  llimits.h  lmem.h  lobject.h  lopcodes.h  lstate.h ltm.h  lua.h Luac.c luaconf.h  lundump.h  lzio.h

  1. 修改Core、Standard工程的输出目录为

DEBUG:$(OutDir)\..\..\Bin\VS2008\Debug\$(ProjectName).lib

RELEASE:$(OutDir)\..\..\Bin\VS2008\Release\$(ProjectName).lib

修改Lua、LuaC工程的输出目录为

DEBUG: $(OutDir)\..\..\Bin\VS2008\Debug\$(ProjectName).exe

RELEASE:$(OutDir)\..\..\Bin\VS2008\Release\$(ProjectName).exe

  1. 向Lua、LuaC工程中添加静态库依赖

DEBUG:   ..\..\Bin\VS2008\Debug\Core.lib

..\..\Bin\VS2008\Debug\Standard.lib

RELEASE:          ..\..\Bin\VS2008\Release\Core.lib

..\..\Bin\VS2008\Release\Standard.lib

  1. 设置一下工程依赖,Lua、LuaC==>>Core&Standard,重新编译工程。
  2. 另外如果需要使用module等函数,还需要在工程中加入预编译宏LUA_COMPAT_ALL。如果嫌一个个的添加太麻烦,可以在luaconf.h文件的开始定义

#define LUA_COMPAT_ALL

  1. 新建两个lua文件testP.lua和mypack.lua:

--testP.lua:

pack = require "mypack" --导入包

print(ver or "No ver defined!")

print(pack.ver)

print(aFunInMyPack or "No aFunInMyPack defined!")

pack.aFunInMyPack()

print(aFuncFromMyPack or "No aFuncFromMyPack defined!")

aFuncFromMyPack()

--mypack.lua:

module(..., package.seeall) --定义包

ver = "0.1 alpha"

function aFunInMyPack()

print("Hello!")

end

_G.aFuncFromMyPack = aFunInMyPack

  1. 将生成的lua.exe和luac.exe拷贝到和lua文件一起。
  2. 打开VS2008的命令行工具,注意一定要是VS2008的而不是系统的cmd.exe。设置lua文件目录为当前目录。执行”Lua.exe testP.lua”命令。如果看到输出为:

No ver defined!

0.1 alpha

No aFunInMyPack defined!

Hello!

function: 00387EA8

Hello!

那么恭喜你,成功了!

时间: 2024-10-23 22:18:04

使用VS2008编译lua的相关文章

VS2008编译GDAL 1.8.1(转)

GDAL1.9.2 全套 如何在c++下进行nc问件的转换 起初,我的思路是这样,首先编译一个netcdf的库,然后用里面的函数进行读取文件.进行存储.再通过gdal里面的函数进行转换. 但是在编译netcdf库的时候,会发现大部分都是在linux下进行的.所以,浪费了我很多的时间. 后来经过录歌的剖析,其实可以讲netcdf和gdal直接编译.将netcdf封装在gdal里.通过调用gdal直接读取nc文件. 此库已经编译好了.有愿意下载的读者可以按照以下链接进行下载. http://down

Live555分析(一):VS2008编译

背景: RTSP(Real Time Streaming Protocol)实时流媒体协议: RFC 2326 The Real Time Streaming Protocol, or RTSP, is an application-level protocol for control over the delivery of data with real-time properties. RTSP provides an extensible framework to  enable cont

Sublime Text(2/3)编译lua

想在subLime text 3中集成编译Lua(或其他语言)功能,只需要在Tool->Build System -> New Build System中将原来的 { "shell_cmd": "make"} 替换为下面的代码: { "cmd": ["c:/Users/Administrator/AppData/Roaming/Sublime Text 2/compile.exe", "$file&quo

VS2008编译bat

工程文件为AirCode,批处理文件为bulit.bat(与*.sln文件在同级目录). 以下是批处理的代码: echo %~dp0 rem set build_config="Debug|Win32" rem set build_config=$ALL set build_config="Release|Win32" rem set vs2008 cli environment call "%VS90COMNTOOLS%VSVARS32.BAT"

windows 编译Lua

http://www.linuxidc.com/Linux/2014-02/96459.htm sublime 配置lua build sysytem -> new build system. the content: { "cmd": ["D:\\TDDOWNLOAD\\lua-5.2.3\\lua-5.2.3\\bin\\lua.exe","$file"], "file_regex": "^(...*?):

【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持

Windows下使用VS2008编译OpenCV2.1 添加Intel TBB和Python支持 步骤: 1.仔细阅读OpenCV官网上的InstallGuide:http://opencv.willowgarage.com/wiki/InstallGuide 2.在"2) Install Prerequisite Libraries and Tools"中提到了如果想支持Python调用需要Python 2.6或者 2.7版本,而且还需要NumPy和SciPy库.升级Python至2

VS2008 编译 libpng库

一.下载libpng和zlib http://sourceforge.net/projects/libpng/ http://sourceforge.net/projects/libpng/files/zlib/ 二.解压libpng和zlib到同一文件夹下!并更名文件夹zlib...为zlib 三.打开libpng.sln或libpng.vcproj 设置libpng工程所有配置为不使用预编译头,编译相应版本即可. VS2008 编译 libpng库,码迷,mamicode.com

用VC编译lua源码,生成lua语言的解释器和编译器

用VC编译lua源码,生成lua语言的解释器和编译器 1.去网址下载源码 http://www.lua.org/download.html 2.装一个VC++,我用的是VC6.0 3.接下来我们开始编译源码,我们需要编译: 一个静态库 一个动态库 一个lua语言解释器 一个lua编译器 建立一个工静态库工程 打开VC-->文件-->(点击)新建--(弹出框中选择)工程-->(win32 static library) 创一个空的工程 工程名为luaLib 把lua中所有的源码添加,去掉其

CentOS下编译Lua使得其支持动态链接

在Linux下编译Lua时,我一般都是使用的make generic,这样编译没有什么问题,运行lua的程序也都OK,但是,这样在加载外部的C动态 链接库,却总是报下面的错误 dynamic libraries not enabled; check your Lua installation 查找了半天资料,最后发现,如果是以make generic对Lua进行编译,是没法进行动态链接的. 所以可以选择以其他的平台参数,选择make linux进行编译的话,就可以加载外部的动态链接库, 但是在使