• 使用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/

  • 相关阅读:
    查看Linux 系统串口信息
    解决:Web server failed to start. Port XXX was already in use
    SpringBoot集成WebSocket长连接实际应用详解
    EMQTT安装与使用
    mysql 分组查每组里创建时间最大的那条数据
    前端 获取本地时间,ios兼容
    SpringBoot:访问Mysql报错message from server: "Host 'XXXX' is blocked because of many connection errors
    Doker:dockercompose安装与操作
    Docker:docker安装操作InfluxDB时序数据库
    ASP.NET Core gRPC服务基础小例子
  • 原文地址:https://www.cnblogs.com/byfei/p/3112157.html
Copyright © 2020-2023  润新知