为什么我无法嵌入 lua 到 x64 项目中?

我正在用 C++ 中的 OpenCV 和 Lua 制作一个项目。OpenCV 需要 x64,当我嵌入 lua 后,就开始出现链接错误(例如:**Error LNK2019 unresolved external symbol lua_tostring referenced in function "blah blah"**)。当我切换回 x86 时,OpenCV 就开始抱怨,我就没有任何与链接器或 lua 相关的错误了。我真的想在一个项目中使用它们两个,有什么解决办法吗?

注意:我在许多其他项目中嵌入了 lua,我没有遇到任何链接器错误的问题,我很确定我做得没错。

点赞
用户7594711
用户7594711

lua 头文件不会检查 C++ 的翻译单元。

在 lua 的包含文件周围加上 extern "C" { }:

extern "C" {
#include <lua.h>
}

或者使用 lua.hpp 替代 lua.h。

2021-03-04 08:08:26