如何在Visual Studio 2012中设置LuaBind?

我已经尝试了一整天。我阅读了文档,并在网上寻求帮助。我似乎无法弄清如何在不同版本的boost/lua/luabind与预编译标题以及VS2010与VS2012之间进行选择。

我在这里找到了一个很好的网站 http://blog.nuclex-games.com/tutorials/cxx/luabind-introduction/ 但是,当我按照这些说明执行时,我会收到LNK2019错误(我假设这是因为他使用VS2010构建了luabind/boost/lua)。

我还找到了这个,http://urbsch.at/?read=1 我使用该项目并将地址更改为我的boost/lua文件,它编译得很好,但是当我尝试运行正在使用luabind的项目时,我仍然收到LNK2019错误。

我正在使用visual studios 2012。如果有人能列出一些逐步说明,我会非常感激。包括在哪里下载以及在项目属性中添加什么。因为在这一点上,如果不是傻瓜式的,我肯定会搞砸它。

这是我经常遇到的49个错误之一。

1>ScriptManager.obj:错误 LNK2019:未解析的外部符号_lua_gettop,在函数“public: __thiscall luabind::adl::index_proxy::index_proxy(class luabind::adl::object const &,struct lua_State *,char const (&)[13])”中引用(??$?0$$BY0N@$$CBD@?$index_proxy@Vobject@adl@luabind@@@adl@luabind@@QAE@ABVobject@12@PAUlua_State@@AAY0N@$$CBD@Z)

点赞
用户1089788
用户1089788

我现在无法发布完整的答案,因为我在手机上,但是我必须为 luabind 做一些必要的工作才能正常工作。

  1. Luabind 0.9.1 无法与 lua 5.2.x 一起工作,仅能与 5.1.x 一起工作。

  2. 如果您正在构建lua,请勿使用c++编译器。Lua bind 使用 extern C 导入 lua headers,使用c++会导致一些冲突。

  3. 如果您正在使用 lua 的预构建版本,请确保它是使用 vs2012 构建的。

2013-08-18 02:53:18
用户1718682
用户1718682

将 LuaBind 集成到 Visual Studio 2012 的步骤

以下是完整的步骤指南,教你如何让 LuaBind 在 Visual Studio 2012 中工作。

  1. 链接 下载演示版。

  2. 创建一个新文件(例如 "Parts" 文件夹),用于保存 luabind 所需的三个部分。

  3. 打开上面下载的参考文件夹,并将其中的 3 个文件夹移到刚刚创建的 "Parts" 文件夹中。

  4. 现在需要重新编译 Lua 和 LuaBind 的新的 .lib 文件。打开上面下载的 LibrarySources.7z 文件。

  5. 在 Visual Studio 2012 中创建一个名为 Lua 的新项目,打开 "LibrarySources.7z/lua-5.2.0/src" 中的所有文件,并将它们提取到 Visual Studio 通常放置 .cpp 和 .h 文件的地方。

  6. 将这些文件添加到项目中(将 .h 文件添加到项目资源管理器的头文件夹中,将 .c 文件添加到源文件夹中)。

  7. 进入到 SolutionExplorer->Properties->General->Configuration_Type,将其设置为 "Static Library (.lib)"。

  8. 编译项目。

  9. 前往你的 Lua 项目的 debug 文件夹,找到你刚刚创建的 lua.lib 文件。

  10. 对于 LuaBind,需要做相同的事情,不过你只需要将 src 文件夹提取到项目中。

  11. 现在在项目属性的 C/C++ -> Additional Include Directories 中,添加 "C:/Parts/boost/include"、"C:/Parts/lua/include" 和 "C:/Parts/luabind/include"。

  12. 然后在 Linker->General->Additional Library Directories 中添加地址 "C:/Parts/lua/msvc-11.0-x86"。

  13. 现在回到 SolutionExplorer->Properties->General,将其更改为一个静态库。

  14. 编译该项目,前往 Debug 文件夹,并将你所创建的 luabind.lib 文件添加到 parts/luabind/msvs-11.0-x86 中,就像你为 lua 所做的那样。

  15. 现在在你想要使用 luabind 的项目中,前往 Properties->C/C++ -> General,添加 "C:/Parts/boost/include"、"C:/Parts/lua/include" 和 "C:/Parts/luabind/include"。

  16. 再次前往 properties->linker->general->Additional Library Directories,并将你刚刚创建的两个 .lib 文件的地址都添加到其中。

完成。

2013-09-01 21:24:01