我一直试图这样做一天。我已经阅读了文档,并在网上寻求帮助。我似乎无法在使用预编译头文件和VS2010 vs VS2012的不同版本的boost / lua / luabind之间弄清楚。
我在这里找到了一个很棒的网站 http://blog.nuclex-games.com/tutorials/cxx/luabind-introduction/ 但是当我遵循这些指令时,我得到了LNK2019错误(我假设是因为他为VS2010构建了luabind / boost / lua。
我也发现了这个,http://urbsch.at/?read=1我接受了项目并将地址更改为我的boost / lua文件并且编译正常但是当我尝试运行使用luabind的项目时,我仍然收到了LNK2019错误。< / p>
我正在使用2012年的视觉工作室。如果有人能列出一些一步一步的说明,我将非常感激。包括下载内容以及在项目属性中添加的位置和内容。因为在这一点上我肯定如果它不是万无一失的话我会搞砸它。
这是我经常遇到的49个错误之一。
1&gt; ScriptManager.obj:错误LNK2019:未解析的外部符号_lua_gettop在函数“public:__thiscall luabind :: adl :: index_proxy :: index_proxy”中引用(类luabind :: adl :: object const&amp;,struct lua_State *, char const(&amp;)[13])“(?? $?0 $$ BY0N @ $$ CBD @?$ index_proxy @ Vobject @ adl @ luabind @@@ adl @ luabind @@ QAE @ ABVobject @ 12 @ PAUlua_State @ @ AAY0N @ $$ CBD @ Z)
答案 0 :(得分:3)
好的,我把它弄清楚了(不久前。)这是完整的,一步一步的,关于如何让它工作的傻瓜证明说明。
1)从这里下载演示http://blog.nuclex-games.com/tutorials/cxx/luabind-introduction/
2)创建一个新文件(比如说“部件”)来保存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文件的位置。 / p>
5)将文件添加到项目中(项目浏览器的头文件夹中的.h文件和源文件夹中的.c文件。)
6)转到SolutionExplorer-&gt; Properties-&gt; General-&gt; Configuration_Type并将其设置为静态库(.lib)
7)编译项目。
8)转到lua项目的文件夹调试文件夹并提交您创建的lua.lib文件。
9)现在转到你为“Parts / Lua”创建的“Parts”文件夹你应该看到有两个文件夹说msvc-10.0-x64 / 86,创建一个新文件,说msvc-11.0-x86并放入您刚刚创建的lua.lib文件。
10)对于luabind,你需要做同样的事情,但是你只需要从luabind中将src文件夹解压缩到你的项目中。
11)现在项目属性C / C ++ - &gt;其他包含目录,添加“C:/ Parts / boost / include”“C:/ Parts / lua / include”和“C:/ Parts / luabind / include”
12)现在转到Linker-&gt; General-&gt;其他库目录并添加“C:/Parts/lua/msvc-11.0-x86”
13)现在返回解决方案资源管理器 - &gt;属性 - &gt;常规并将其更改为静态库。
14)编译它,转到它的debug文件夹并将你创建的luabind.lib添加到parts / luabind / msvs-11.0-x86中,就像你为lua所做的那样。15)现在你想要使用luabind和Go to Properties-&gt; C / C ++ - &gt;一般并添加“C:/ Parts / boost / include”“C:/ Parts / lua / include”和“C:/ Parts / luabind / include”
16)转到properties-&gt; linker-&gt; general-&gt;其他库目录,并将地址添加到刚刚创建的.lib文件中。
翅片。
答案 1 :(得分:0)
我现在无法发布一个完整的答案,因为我正在打电话但是我有一些事情要让luabind正常工作。
Luabind 0.9.1不适用于lua 5.2.x.仅适用于5.1.x。
如果您正在构建lua,则不使用c ++编译器。 Lua bind使用extern C来导入lua头文件,使用c ++会导致一些冲突。
如果您使用的是lua的预构建,请确保它是使用vs2012构建的。