昨天在Msys下用MingW GCC 4.7.0编译libgmp时遇到一个问题,说找不到"m4 gcc"这个文件。其实一看就知道这是两个不同的文件,错误是由libtool报出的,因此很可能是libtool脚本写的有问题,或是Windows环境下脚本的解释有问题。最终查到问题涉及的直接文件是mpn/Makefile,修改其1023行(libgmp版本5.0.4)
原行:
$(LIBTOOL) --mode=compile --tag=CC $(top_srcdir)/mpn/m4-ccas --m4="$(M4)" $(CCAS) $(COMPILE_FLAGS) `test -f '$<' || echo '$(srcdir)/'`$<
改为:
$(LIBTOOL) --mode=compile --tag=CC $(top_srcdir)/mpn/m4-ccas --m4=$(M4) $(CCAS) $(COMPILE_FLAGS) `test -f '$<' || echo '$(srcdir)/'`$<
对比一下就知道仅去掉了“”(双引号),然后就能正常编译了。为什么这样做就可以我还是不知道!