(转载)VC下编译lua和luabind纪实

源代码下载

下载lua
http://www.lua.org/download.html
我拿到的版本是5.1.4

下载luabind
http://sourceforge.net/projects/luabind/
我拿到的版本是0.7

下载boost
http://sourceforge.net/projects/boost/
最新版本是1.36.0,我网络比较慢,就先用已有的1.35.0了
boost可以不需要编译的,luabind编译时仅仅需要其头文件

建立项目
  • 分别给lua和luabind建立VC项目
  • 文件>新建>从现有代码创建项目,然后跟着向导走,选静态库项目
  • lua建立项目为Lua,精确到lua-5.1.4\src文件夹
  • luabind建立项目为LuaBind,精确到luabind-0.7\luabind\src文件夹
  • 在luabind项目中建立虚拟文件夹luabind和luabind\detail,然后对应将磁盘luabind-0.7\luabind\luabind中的头文件加入到项目中
  • 最后把这两个项目添加到通一个解决方案Lua中
编译

编译Lua项目

  • 将lua.c和luac.c从生成中排除或者从项目中移除
  • 修改项目属性:
    • 配置属性>常规>字符集 修改为 使用多字节字符集
    • 配置属性>C/C++>常规>检测64位可移植性问题 修改为 否
    • 配置属性>C/C++>高级>禁用特定警告 修改为 4996
  • 可以编译了

编译LuaBind项目

  • 修改项目属性:
    • 通用属性>框架和引用>添加新引用 添加对Lua项目的引用
    • 配置属性>常规>字符集 修改为 使用多字节字符集
    • 配置属性>C/C++>常规>检测64位可移植性问题 修改为 否
    • 配置属性>C/C++>高级>禁用特定警告 修改为 4996
    • 配置属性>常规>附加包含目录 添加对lua-5.1.4\src、luabind-0.7\luabind\、boost_1_35_0目录的引用,当然你需要根据你本地的文件目录结构改成相对路径的形式。比如在我机器上的配置为:../;http://www.cnblogs.com/../lua-5.1.4/src;http://www.cnblogs.com/../boost_1_35_0
  • 将Lua项目luaconf.h 322行 #undef LUA_COMPAT_GETN 改为 #define LUA_COMPAT_GETN
  • 在LuaBind项目lua_include.hpp 30行 添加语句 #include "lauxlib.h"
  • 可以编译了

2011-12-28
    也可以采用tolua++,这样可以避免引入boost。因tolua++采用的是自定义脚本预编译为C++代码,相比luabind编译期模板生成代码的方式,tolua++在编译速度上有明显优势。这点在大项目中尤为重要。
原文地址:https://www.cnblogs.com/ylwn817/p/2692388.html