我在我的c ++项目中实现了Lua但我得到了未解决的外部符号错误,因为Lua.h没有找到函数定义。 我在"附加库目录"中添加了lua.lib的路径,"附加的依赖项"中的lua.lib;以及包含目录中包含头文件(lua.h,lua.hpp,luaconf.h,lualib.h,luaxlib.h)的include文件夹。
我正在使用visual studio community 2015,而lua是来自Lua Binaries" lua-5.3.3_Win32_dll14_lib.zip"这个是win32版本的动态,但我测试了win32 static和win64动态和静态,它的结果相同。
有什么想法吗?
答案 0 :(得分:1)
从C ++应用程序使用Lua时,您需要 #include "lua.hpp"
而不是lua.h
。
如果你看一下lua.hpp
的内容,你就会明白为什么:)它只是在extern "C"
中包装Lua头,这是C ++编译器将这些Lua函数定义识别为使用所需的C ABI(没有它,链接器将在DLL中查找错误的符号)。
答案 1 :(得分:0)
似乎现在它正在运作。
我所做的只是将动态库更改为静态库并重建解决方案,现在它正在工作但是如果我进入Lua.h,我看到了函数声明的相同问题,但现在它可以正常运行...