无法链接到预编译的 Lua 二进制文件。

我正在尝试使用MinGW编译一个涉及Lua的示例程序。

#include <stdlib.h>

#include <lua.hpp>

int main(void) {
    lua_State *L = luaL_newstate();
    luaL_openlibs(L);
    lua_close(L);
    exit(EXIT_SUCCESS);
}

我下载了标有“lua-5.3_Win64_dllw4_lib.zip”的LuaBinaries ZIP文件,并将其解压缩到我的项目中。这是我的文件结构:

+- bin
+- include
|   +- lauxlib.h
|   +- lua.h
|   +- lua.hpp
|   +- luaconf.h
|   +- lualib.h
+- lib
|   +- liblua53.a
|   +- lua53.dll
+- src
|   +- Main.cpp
+- build.bat

批处理文件如下:

g++ -c -v -Iinclude src/Main.cpp
g++ -v -o bin/main Main.o -Llib -llua53
del Main.o
pause

据我所知,这个设置应该可以工作,但链接器在每次调用Lua函数时抛出未定义引用错误:

Main.o:Main.cpp:(.text+0xf): undefined reference to `luaL_newstate'
Main.o:Main.cpp:(.text+0x1f): undefined reference to `luaL_openlibs'
Main.o:Main.cpp:(.text+0x2b): undefined reference to `lua_close'

我做错了什么?

点赞