在执行嵌入式lua的C文件时出现编译错误。

我在Cygwin环境下使用了带有Lua解释器包的安装方式。因此我能够编译和运行样例Lua程序。但是当我尝试执行另一个有Lua调用的样例C文件时,我始终遇到以下错误。

我的样例ctest.c文件内容:

在浏览网络时,我发现它们都说出现了某个链接器错误,并且必须包含-llua51。因此我尝试了以下。

你能帮我解决这个问题,使我的第一个嵌入式lua c程序成功运行吗?

更新:(以下是多次尝试后的错误)

  • 编译后执行得到如下错误:
/usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/ld: cannot find
 -llua5.1
collect2: ld returned 1 exit status
  • 尝试用llua51替换llua后得到如下错误:
/usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/ld: cannot find
 -llua
collect2: ld returned 1 exit status

以上,我始终只得到这些错误。

原文链接 https://stackoverflow.com/questions/5302398

点赞
stackoverflow用户1491
stackoverflow用户1491

请在../samples/ctest.c后添加-llua5.1。目标文件的链接顺序应当反向依赖顺序。

cc -o ../samples/ctest -Wall ../samples/ctest.c -llua5.1

更新: 您的更新描述了一个不同的问题。在这种情况下,链接器在搜索路径中找不到liblua5.1.a文件。确保您的系统上有这样的库,并尝试使用-L选项添加其路径。

2011-03-14 18:15:34