Makefile Cygwin犯错误

Makefile Cygwin犯错误,makefile,cygwin,Makefile,Cygwin,我正在编译一个源代码,在执行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?

我正在编译一个源代码,在执行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
,不知道该怎么办?

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

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

或者,这个程序应该在其他地方找到或者命名为其他东西,而您的makefile是错误的,因为一些变量没有设置;例如,makefile可能会显示类似于
$(FOODIR)/bin/lmntal
的内容,并且由于某些原因,没有设置变量
$(FOODIR)


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

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

不管怎样,如果我在您所在的位置,我会调查环境发生了什么变化——也许您的项目在版本系统中——尝试另一个分支


试图解决makefile中的问题可能非常困难,因此最好返回到一个有效的版本,然后继续前进

当这里没有显示任何源代码时,很难判断问题出在哪里。源代码太大了。您认为问题是源代码还是cygwin或windows相关的?我在Windows7上编译了它的cygwin目录。例如,在
第422行
附近的Makefile部分将是有用的,可能还有任何相关的
make
变量。请参阅:。也许你可以删除
-rdynamic
,这是Linux的原始代码吗?是的,代码是ubuntu.422行上的c make project dveloped?它在同一个目录中至少委托三层递归?此makefile是自动生成的,或编写不正确,或两者兼而有之。你似乎继承了一份遗产,我很同情你;调试它可能会变得很琐碎,或者是一项艰巨的任务,如果不投入其中,就无法判断。