0

我正在编译源代码,它总是在 make 命令失败,下面是错误消息。

gcc: unrecognized option '-rdynamic'
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: \
  warning: --export-dynamic is not supported for PE targets,         \
  did you mean --export-all-symbols?
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: \
  warning: --export-dynamic is not supported for PE targets,         \
  did you mean --export-all-symbols?
make[3]: Leaving directory `/home/alimjan/slim502/src'
make[2]: Leaving directory `/home/alimjan/slim502/src'
make[1]: Leaving directory `/home/alimjan/slim502/src'
Making all in lib
make[1]: Entering directory `/home/alimjan/slim502/lib'
Cannot execute /bin/lmntal
Makefile:422: recipe for target `config.il' failed
make[1]: *** [config.il] Error 1
make[1]: Leaving directory `/home/alimjan/slim502/lib'

Makefile:293: recipe for target `all-recursive' failed

make: *** [all-recursive] Error 1

(上面的线断了显示)

我无法解决这个问题。我是新手,make不知道该怎么办?

4

2 回答 2

0

我不确定这是makefile的问题。错误是:

Cannot execute /bin/lmntal

我相当确定如果您尝试从命令行自己运行“/bin/lmntal”,您会收到类似的错误。似乎您的构建需要一些额外的实用程序才能运行,而您没有这些实用程序或无法在您的系统上运行。该文件 ( /bin/lmntal) 是否存在?是否可执行?它是脚本吗?如果是,第一行是否引用了存在且可执行的解释器?当您使用 64 位操作系统时,它是 32 位程序(使用file /bin/lmntal)吗?如果是,您的 Ubuntu 系统上是否安装了 32 位版本的 libc 等?或者反之亦然(如果你有一个 32 位的 Ubuntu 并且该实用程序是一个 64 位的程序,你将根本无法运行它)?

或者,可能是该程序应该在其他地方找到或命名为其他名称,而您的 makefile问题,因为未设置某些变量;例如,makefile 可能会说类似的内容$(FOODIR)/bin/lmntal,并且由于某种原因$(FOODIR)未设置变量。

如果您提供上述详细信息(文件存在?权限? file输出?makefile 第 422 行的完整规则?)我们可以提供更多帮助。

于 2013-04-06T15:27:16.810 回答
0

通常当一个makefile输出看起来和你的输出一样严重时,那是因为它被使用的环境发生了变化——可能是一些外部文件被移动或删除了,或者可能是make太大了,特别是如果make本质上是递归的(远离递归makefile;去NR)

无论如何,如果我在你那里我会调查环境发生变化的地方 - 也许如果你的项目在版本系统中 - 尝试不同的分支

尝试解决 makefile 中的问题可能非常困难,因此最好返回到有效的版本,然后从那里继续

于 2014-03-09T06:35:44.880 回答