码迷,mamicode.com
首页 > 其他好文 > 详细

使用VS2008编译lua

时间:2015-05-22 00:09:34      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

转自http://blog.163.com/lvan100@yeah/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!

         那么恭喜你,成功了!

使用VS2008编译lua

标签:

原文地址:http://www.cnblogs.com/gamekk/p/4521088.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!