gpt4 book ai didi

c++ - 链接器找不到 Lua 库定义

转载 作者:太空狗 更新时间:2023-10-29 21:31:30 24 4
gpt4 key购买 nike

所以,我是 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 header 的 #include 包装到 extern "C" 中:

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

关于c++ - 链接器找不到 Lua 库定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57967479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com