编译链接 LUA5.1 库。 dev-cpp 中的错误

Posted

技术标签:

【中文标题】编译链接 LUA5.1 库。 dev-cpp 中的错误【英文标题】:Compile Link LUA5.1 Lib. Error in dev-cpp 【发布时间】:2011-11-18 10:26:35 【问题描述】:

这是我的 dev-cpp 编译器日志:

rm -f main.o  luaTest.exe'

gcc.exe -c main.c -o main.o -I"E:/Dev-Cpp/include"  -I"E:/Lua/5.1/include"'   
gcc.exe main.o  -o "luaTest.exe" -L"E:/Dev-Cpp/lib" -L "E:/lua/5.1/lua5.1.lib"'  

main.o(.text+0x34):main.c: undefined reference to 'luaL_newstate'

main.o(.text+0x48):main.c: undefined reference to 'luaL_openlibs'

main.o(.text+0xab):main.c: undefined reference to 'luaL_loadbuffer'

main.o(.text+0xd5):main.c: undefined reference to 'lua_pcall'

main.o(.text+0x11c):main.c: undefined reference to 'lua_tolstring'

main.o(.text+0x14e):main.c: undefined reference to 'lua_settop'

main.o(.text+0x161):main.c: undefined reference to 'lua_close'

collect2: ld returned 1 exit status'

make.exe: *** [luaTest.exe] Error 1'

我可以用 code::blocks 编译和链接我的代码成功。我无法弄清楚 dev-cpp 有什么问题。

【问题讨论】:

为什么要坚持使用dev-cpp?这是一个非常过时/被忽视的工具。正如您已经发现的那样,Code::Blocks 是无限优越的。立即删除 dev-cpp。 :] 我完全同意。它甚至在标签的信息中。 【参考方案1】:

链接步骤看起来不正常。选项 -L(大写 L)为通过 -l(小写 L)引用的库设置搜索目录。最后一步尝试使用-L 而不是正确的-l 链接到lua5.1.lib

【讨论】:

我发现了dev-cpp有什么问题。当你想链接lib文件时,你必须在编译器选项中关闭makefile生成。BTY -L是可以的,但必须有一个- L.【参考方案2】:

我发现了 dev-cpp 有什么问题。当你想链接 lib 文件时,你必须在编译器选项中关闭 makefile 生成

【讨论】:

以上是关于编译链接 LUA5.1 库。 dev-cpp 中的错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在链接到静态库的 DEV-CPP 中构建控制台应用程序时解决对 _imp__** 的未定义引用?

编译lua动态库

编译器下载

centos7源码编译安装lua:lua5.1升级lua5.3

DEVC++编译NTL库,以及使用实例

为golua编译lua5.1