链接器找不到 Lua 库定义

Linker can't find Lua library definition

所以,我对 C++ 比较陌生,我一直在尝试 运行 Lua 我的 C++ 项目中的文件。首先,我 运行 这个简单的代码:

#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

也将 #include for Lua headers 换成 extern "C":

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