链接器找不到 Lua 库定义

Linker can't find Lua library definition

本文关键字:定义 Lua 找不到 链接      更新时间:2023-10-16

所以,我对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 中导入库非常简单。这似乎是我不熟悉在我的项目中使用库的问题,但我找不到非常有用的文档。提前谢谢你。

-L选项指定保存库文件的文件夹;请尝试g++ main.cpp -Llib -llua

还将 Lua 标头的#include包装成extern "C"

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