我也有完全相同的问题。与gmp无关。./configure 脚本会生成一个损坏的 Makefile。在对生成的 Makefile 进行了一些分析之后,我想出了一个解决方案。
在生成的Makefile的最底部搜索如下所示的行:
DEP_FILES = $(SOURCES:.c=.$(OBJEXT).d) $(SOURCES:.c=.p$(OBJEXT).d) asm.d
您可以通过将其更改为以下行来修复构建:
DEP_FILES = $(SOURCES:.c=.c.$(OBJEXT).d) $(SOURCES:.c=.c.p$(OBJEXT).d) asm.d
此外,我们必须修复所有子目录中的 Makefile。
对于./tools/Makefile,在最底部找到如下所示的行:
include $(SOURCES:.c=.$(OBJEXT).d)
并将其更改为
include $(SOURCES:.c=.c.$(OBJEXT).d)
此外,您需要添加以下两个构建目标:
../libnettle.a:
$(MAKE) -C .. libnettle.a
../libhogweed.a:
$(MAKE) -C .. libhogweed.a
对于./testsuite/Makefile,在最底部找到如下所示的行:
DEP_FILES = $(SOURCES:.c=.$(OBJEXT).d) $(CXX_SOURCES:.cxx=.$(OBJEXT).d)
并将其更改为:
DEP_FILES = $(SOURCES:.c=.c.$(OBJEXT).d) $(CXX_SOURCES:.cxx=.cxx.$(OBJEXT).d)
最后,在./examples/Makefile中,再次在最底部,搜索如下所示的行:
include $(SOURCES:.c=.$(OBJEXT).d)
并将其更改为
include $(SOURCES:.c=.c.$(OBJEXT).d)
唷,至少对我来说,这使得构建工作。当然,这是一个丑陋的解决方案,但它可以完成工作。更好的解决方案是修复配置脚本,但我还没有时间去做。另外值得注意的是,nettle 3.0 没有这个问题。太糟糕了 gnutls 不适用于新版本。