当我尝试编译nettle-2.7.1时,我得到以下内容:
root @ tcx2270-19:〜/ nettle-2.7.1#make
make:警告:找不到aes-decrypt-internal.o.d': No such file or directory
make: Fatal error in reader: Makefile, line 594: Read of include file
aes-decrypt-internal.o.d'失败
有没有人见过这个问题?感谢。
答案 0 :(得分:1)
我也遇到了同样的问题。它与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)
Phew,至少对我来说,这使构建工作。当然,这是一个丑陋的解决方案,但它完成了工作。一个更好的解决方案是修复configure-script但我没有时间去做。值得注意的是,nettle 3.0没有这个问题。太糟糕的gnutls不适用于那个新版本。
答案 1 :(得分:0)
更新:我创建了一个补丁,它在Makefile.in文件中执行上述所有修复。因此,您不必自己修复它们。最好的方法是,只需解压缩源代码,然后按照正常的方式继续使用./configure。