我正在尝试在 C++ 中嵌入 lua 代码,但遇到了一个奇怪的编译器错误。这是我的代码:
#include <stdio.h>
extern "C" {
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
}
int main() {
lua_State *luaVM = luaL_newstate();
if (luaVM == NULL) {
printf("Error initializing lua!\n");
return -1;
}
luaL_openlibs(luaVM);
luaL_dofile(luaVM, "test.lua");
lua_close(luaVM);
return 0;
}
编译:
g++ -Wall -o embed -llua embed.cpp
错误是:
g++ -Wall -o embed -llua embed.cpp
/tmp/ccMGuzal.o: In function `main':
embed.cpp:(.text+0x47): undefined reference to `luaL_loadfilex'
embed.cpp:(.text+0x72): undefined reference to `lua_pcallk'
collect2: error: ld returned 1 exit status
我不是从我的代码中调用luaL_loadfilex
或调用lua_pcallk
,这有助于假设问题不在我的代码中,而是在 lua 本身。有人在这里有什么想法吗?
更新
这是我的版本信息:
$ lua -v
Lua 5.2.0 Copyright (C) 1994-2011 Lua.org, PUC-Rio