编译链接 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__** 的未定义引用?