gpt4 book ai didi

c++ - 如何将 LuaJIT 与 C++ 程序链接起来?

转载 作者:太空狗 更新时间:2023-10-29 23:06:26 24 4
gpt4 key购买 nike

我正在尝试简单地使用以下 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。

最佳答案

一般来说,您应该使用与应用程序相同的编译器来编译所有库。 MinGW 生成一个 .a 库存档,而 MSVC 通常输出一个 .lib 存档。

因此:使用 MSVC 重新编译 LuaJIT,将 luajit.lib 所在的路径添加到您的链接器路径,并将 luajit.lib 添加到要链接到您的应用程序的库列表中。

关于c++ - 如何将 LuaJIT 与 C++ 程序链接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15731110/

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