因此,我是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中导入库还是非常简单的。我似乎不熟悉在项目中使用库的问题,但找不到非常有用的文档。预先谢谢你。
答案 0 :(得分:2)
-L
选项指定用于保存库文件的文件夹;尝试g++ main.cpp -Llib -llua
还将Lua标头的#include
包装到extern "C"
中:
extern "C" {
#include <lualib.h>
#include <lauxlib.h>
#include <lua.h>
}