zoukankan      html  css  js  c++  java
  • 使用VS2008编译lua

    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

    6.       向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

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

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

    8.       向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

    9.       修改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

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

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

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

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

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

    11.   设置一下工程依赖,Lua、LuaC==>>Core&Standard,重新编译工程。

    12.   另外如果需要使用module等函数,还需要在工程中加入预编译宏LUA_COMPAT_ALL。如果嫌一个个的添加太麻烦,可以在luaconf.h文件的开始定义

    #define LUA_COMPAT_ALL

    13.   新建两个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

    14.   将生成的lua.exe和luac.exe拷贝到和lua文件一起。

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

    No ver defined!

    0.1 alpha

    No aFunInMyPack defined!

    Hello!

    function: 00387EA8

    Hello!

             那么恭喜你,成功了!

    原文地址:

    http://blog.163.com/lvan100@yeah/blog/static/68117214201249113216137/

  • 相关阅读:
    oracle调用存储过程和函数返回结果集
    怎样让Oracle的存储过程返回结果集
    Java 调用存储过程 返回结果集
    oracle多表关联删除数据表记录方法
    ORACLE多表关联UPDATE 语句
    Oracle--用户管理与权限分配
    java代码开启关闭线程(nginx)
    netty实现websocket客户端(附:测试服务端代码)
    netty同时实现http与socket
    Oracle-控制语句
  • 原文地址:https://www.cnblogs.com/byfei/p/3112157.html
Copyright © 2011-2022 走看看