【发布时间】:2019-09-17 04:44:15
【问题描述】:
所以,我对 C++ 比较陌生,我一直在尝试在我的 C++ 项目中运行 Lua 文件。首先,我运行了这个简单的代码:
#include <iostream>
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
#include <stdlib.h>
#include <stdio.h>
int main() {
std::cout << "Lua Console";
lua_State *L;
L = luaL_newstate();
char ch;
std::cin >> ch;
return 0;
}
终端命令如下所示:
g++ main.cpp -L lib/liblua.a
编辑:更正此
g++ main.cpp -Llib -llua
Lua 库安装在我的系统 (Linux) 上,但链接器找不到 luaL_newstate() 的定义,尽管我在命令行中包含了该库:
main.cpp:(.text+0x2b): undefined reference to `luaL_newstate()'
这发生在任何 Lua 函数中。我真的不知道出了什么问题,到目前为止,在 Linux 中导入库非常简单。这似乎是我不熟悉在我的项目中使用库的问题,但我找不到非常有用的文档。提前谢谢你。
【问题讨论】:
-
所以这个问题已经解决了,但是还需要澄清一下;发生此问题是因为我将 Lua 库构建为 C 并在 C++ 中使用它。一个技巧肯定是用 extern "C" 包装所有这些头文件,但是,Lua 文档建议您应该简单地使用 "#include
",该头文件已经包含 extern 并且包含在 Lua 库安装头文件中。
标签: c++ linux lua g++ linker-errors