【问题标题】:lua 5.2.1 unresolved externalslua 5.2.1 未解决的外部
【发布时间】:2012-09-21 10:51:05
【问题描述】:

我使用的是 Visual Studio 2012,当我尝试编译时,出现以下错误:

Error   7   error LNK1120: 6 unresolved externals   C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\Release\LuaTest.exe   LuaTest
Error   4   error LNK2001: unresolved external symbol _lua_close    C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\LuaTest\main.obj  LuaTest
Error   5   error LNK2001: unresolved external symbol _lua_pcallk   C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\LuaTest\main.obj  LuaTest
Error   6   error LNK2001: unresolved external symbol _lua_settop   C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\LuaTest\main.obj  LuaTest
Error   2   error LNK2001: unresolved external symbol _luaL_loadfilex   C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\LuaTest\main.obj  LuaTest
Error   1   error LNK2001: unresolved external symbol _luaL_newstate C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\LuaTest\main.obj LuaTest
Error   3   error LNK2001: unresolved external symbol _luaopen_base C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\LuaTest\main.obj  LuaTest

源代码取自 HERE.

使用以下库版本:lua-5.2.1_Win32_dll10_lib.zip

我尝试了不同的 lua52.lib 文件,但所有这些文件都出现了这些错误。 有什么问题?

【问题讨论】:

  • 链接器显示 6 个未解析的符号,但我只看到 4 个。另外 2 个是 luaL_newstateluaL_openlibs?我要问的背景问题:这些未解析的符号是代表 all 您在应用程序中使用的 Lua 函数还是仅代表 some
  • 感谢您指出这一点,我编辑了我的原始帖子。一个未解析的符号确实是 luaL_newstate,但另一个是 _luaopen_base。
  • 这 6 个未解析的符号确实代表了简单教程示例中使用的 所有 Lua 函数。这意味着链接器没有使用 Lua 5.2 库。

标签: c++ windows lua


【解决方案1】:

您使用的是 Visual Studio 2012,但库文件 from here 仅支持 Visual Studio 2010。

无论如何,Lua 很小而且很容易编译。我真的建议您在 Visual Studio 中包含 Lua source files 而不是库。

【讨论】:

    猜你喜欢
    • 2017-07-09
    • 2015-01-11
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    相关资源
    最近更新 更多