0

我正在尝试使用M Cross Environment从 Linux 为 Windows 交叉构建应用程序,这实际上只是一个有助于使用 Mingw-w64 工具的 makefile 系统。应用程序的构建系统是 autotools。

当我尝试构建时,我得到如下错误:

libtool: link: lib -OUT:.libs/liby12.lib  y12mae.o y12maf.o y12mbe.o y12mbf.o y12mce.o y12mcf.o y12mde.o y12mdf.o y12mfe.o y12mge.o y12mhe.o
../../libtool: line 1112: lib: command not found
make[4]: *** [liby12.la] Error 127
make[4]: Leaving directory `/opt/mxe/tmp-mbdyn-i686-w64-mingw32.static/mbdyn-1.7.1.build_/libraries/liby12'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/opt/mxe/tmp-mbdyn-i686-w64-mingw32.static/mbdyn-1.7.1.build_/libraries'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/opt/mxe/tmp-mbdyn-i686-w64-mingw32.static/mbdyn-1.7.1.build_'
make[1]: *** [build-only-mbdyn_i686-w64-mingw32.static] Error 2
make[1]: Leaving directory `/opt/mxe'

谁能解释问题是什么?

其他人在这个stackoverflow 问题中也有类似的问题,尽管他们似乎是在 Windows 上本地构建的。这里也有关于邮件列表的讨论。这些来源都没有为我对 libtool 知识有限的人提供足够的信息来解决问题(我什至不知道第 1112 行指的是什么,即第 1112 行究竟是什么,libtool 本身?这是 libtool 中的注释行)。

编辑:

我发现了以下线程:

http://cygwin.1069669.n5.nabble.com/libtool-link-object-name-conflicts-in-archive-td107913.html#a107969

这实际上是关于在 cygwin 上编译我正在交叉编译的同一应用程序(mbdyn,但更早的版本)。似乎问题可能是由于在源目录中配置创建 libtool 脚本。我猜这与交叉编译器 libtool 脚本或类似的东西发生冲突。

那么解决这个 libtool 问题的正确方法是什么?

4

1 回答 1

0

这个问题实际上在发布的链接中得到了回答。问题是AC_PROG_F77需要在configure.ac. 否则,由于指定了 fortran 编译器并且永远不会触发条件,因此 libtool 在进行交叉编译时会感到困惑。

于 2017-06-06T21:16:49.920 回答