【问题标题】:How do you set up LuaBind with visual studio 2012?你如何使用 Visual Studio 2012 设置 LuaBind?
【发布时间】:2013-08-20 03:13:08
【问题描述】:

我已经尝试了一天。我已经阅读了文档,并在网上搜索了帮助。我似乎无法弄清楚与预编译头文件一起使用的不同版本的 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)

【问题讨论】:

  • 您是否添加编译库(您编译为静态库的 *.lib 文件)(项目设置->链接器->常规->附加库目录或 #pragma 注释(lib,“path_to_lib”)来自您的 *.cpp)?

标签: c++ visual-studio-2012 lua luabind precompiled


【解决方案1】:

我现在无法发布完整的答案,因为我正在打电话,但我必须做一些事情才能让 luabind 正常工作。

  1. Luabind 0.9.1 不适用于 lua 5.2.x。仅适用于 5.1.x。

  2. 如果您正在构建 lua,请不要使用 c++ 编译器。 Lua bind使用extern C导入lua头,使用c++会产生一些冲突。

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

【讨论】:

  • 当您使用 Visual Studio 添加引用时,它只会在路径中添加库,而不是包含。您应该在“其他包含目录”字段中的“我的项目”中手动添加到 luabind 根文件夹的路径。我认为在此之后你很高兴
【解决方案2】:

好的,我想通了(不久前。)这里是完整的,一步一步的,关于如何让它工作的简单证明。

1) 从这里下载演示 http://blog.nuclex-games.com/tutorials/cxx/luabind-introduction/

2) 创建一个新文件(比如“Parts”)来保存 luabind 所需的三个部分。

3) 打开上面下载的参考文件夹,然后将这 3 个文件夹移动到您刚刚创建的“Parts”文件夹中。

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

4) 创建一个名为 Lua 的新 Visual Studio 2012 项目,打开将“LibrarySources.7z/lua-5.2.0/src”中的所有文件解压缩到 Visual Studio 通常放置 .cpp 和 .h 文件的位置。

5) 将文件添加到项目中(项目资源管理器头文件夹中的.h文件和源文件夹中的.c文件。)

6) 转到SolutionExplorer->Properties->General->Configuration_Type 并将其设置为静态库(.lib)

7) 编译项目。

8) 进入你的 lua 项目的 debug 文件夹,将你创建的 lua.lib 文件归档。

9) 现在转到您创建到“Parts/Lua”的“Parts”文件夹,您应该在那里看到 2 个文件夹,上面写着 msvc-10.0-x64/86,创建一个写着 msvc-11.0-x86 的新文件夹,然后放您刚刚在其中创建的 lua.lib 文件。

10) 对于 luabind,您需要做同样的事情,但是您只需要将 src 文件夹从 luabind 提取到您的项目中。

11) 现在在项目属性 C/C++ -> Additional Include Directories 中,添加“C:/Parts/boost/include”、“C:/Parts/lua/include”和“C:/Parts/luabind/include”

12) 现在转到链接器->常规->附加库目录并添加“C:/Parts/lua/msvc-11.0-x86”

13) 现在回到解决方案资源管理器->属性->常规并将其更改为静态库。

14) 编译它,转到它的调试文件夹并将您创建的 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) 转到属性->链接器->通用->附加库目录并将地址添加到您刚刚创建的两个 .lib 文件中。

鳍。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多