我试图简单地使用以下 C++ 代码
lua_State *state = luaL_newstate();
luaL_openlibs(state);
lua_getglobal(state, "_G");
lua_pushstring(state, "print");
lua_pushnumber(state, 4.5);
lua_call(state, 2, 1);
lua_close(state);
而且我收到链接器错误。所有上述函数调用都会产生链接器错误:
1>main.obj : error LNK2001: unresolved external symbol _luaL_newstate
1>main.obj : error LNK2001: unresolved external symbol _lua_pushnumber
1>main.obj : error LNK2001: unresolved external symbol _lua_call
1>main.obj : error LNK2001: unresolved external symbol _lua_pushstring
1>main.obj : error LNK2001: unresolved external symbol _luaL_openlibs
1>main.obj : error LNK2001: unresolved external symbol _lua_getfield
1>main.obj : error LNK2001: unresolved external symbol _lua_close
标头包含是通过以下代码完成的:
extern "C" {
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
}
我使用 MinGW“安装”了 LuaJIT,mingw32-make BUILDMODE=static。它给了我一个很好的“成功构建 LuaJIT”。
我正在用 VS2012 编译代码。我已经像这样设置了链接器:
附加库目录:D:\Programming\LuaJIT Source\LuaJIT-2.0.1\src 附加包含目录:D:\Programming\LuaJIT Source\LuaJIT-2.0.1\src
我在一台 windows7 机器上,我正在使用他们 github 页面上最新的 LuaJIT。