交叉构建错误:libtool:行1112:lib:命令未找到

问题描述:

我试图跨Linux构建一个应用程序从Windows使用M Cross Environment这实际上只是一个makefile系统,它帮助使用Mingw-w64工具。该应用程序的构建系统是autotools。交叉构建错误:libtool:行1112:lib:命令未找到

当我尝试编译我得到和错误如下所示:

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' 

任何人都可以解释的问题是什么?

其他人在this计算器的问题类似的问题,但他们似乎在Windows本地建筑。还有一个邮件列表here的讨论。这些资源都不足以为我有限的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问题的正确方法是什么?

问题实际上是在发布的链接中回答的。问题是需要在configure.ac的条件语句之外调用AC_PROG_F77。否则,libtool在执行交叉编译时会感到困惑,因为指定了fortran编译器并且从不触发条件。