• Lua Lib在VC下的编译


    Lua提供了源代码以便于用户自己编译。用户可以将之编译成静态库,也可以编译成为动态库。但Lua没有提供工程文件,需要用户自己添加,对新手而言,带来诸多不便。

    一、Lua静态库

    编译为静态库很简单,有人已经写过,现摘录如下:

     Lua 包含core lib和standard lib,详细情况可以查阅文档,为了简单起见,我们将其放到一个lib中,我们需要建立一个静态库的工程,然后将其源文件加入到工程中,包含以下文件
      core lib: lapi.c lcode.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lp***r.c lstate.c lstring.c ltable.c ltests.c ltm.c lundump.c lvm.c lzio.c

    standard lib: lauxlib.c lbaselib.c ldblib.c liolib.c lmathlib.c ltablib.c
                       lstrlib.c loadlib.c
    并将其输出路径设置到lib下

    二、Lua动态库

    编译动态库,首先需要修改一下Lua.h头文件。如下:

    /* mark for all API functions */
    //#ifndef LUA_API
    //#define LUA_API  extern
    //#endif
    #ifdef LUA502_EXPORTS 
    // 根据自己的项目而定
       #define LUA_API __declspec(dllexport)
    #else
       #define LUA_API __declspec(dllimport)
    #endif

    然后用vc建立一个win32 dll,包含*.h和*.c文件(参考一),编译即可。

    三、关于LuaBind

    LuaBind是对Lua的包装,以便于与C++的交互。同样,LuaBind只提供源代码。在VC下使用它,无需编译成动态库或dll,只需在项目中包含LuaBind的*.cpp文件。LuaBind6 使用了Boost 1.30.0,因此需要下之(高版本的Boost是不行的)。

    另外在VC6 sp5下使用LuaBind会出现种种问题,因此还是使用高版本的VC为妙。

  • 相关阅读:
    狗蛋带仨妞【Beta】Scrum meeting 1
    实验九 团队作业5:团队项目编码与Alpha冲刺
    狗蛋带仨妞【Alpha】Scrum meeting 7
    狗蛋带仨妞【Alpha】Scrum meeting 6
    狗蛋带仨妞【Alpha】Scrum meeting 5
    狗蛋带仨妞 【Alpha】Scrum meeting 1-4
    Rosetta中准备配体的参数文件
    pymol安装
    chemshell的creation之后
    关于KIE的一点认识
  • 原文地址:https://www.cnblogs.com/aiwz/p/6333145.html
Copyright © 2020-2023  润新知