0

当我尝试编译 nettle-2.7.1 时,我得到以下信息:

root@tcx2270-19:~/nettle-2.7.1# make make: Warning: Can't find aes-decrypt-internal.o.d': No such file or directory make: Fatal error in reader: Makefile, line 594: Read of include fileaes-decrypt-internal.od' failed

有没有人看到这个问题?谢谢。

4

2 回答 2

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)

唷,至少对我来说,这使得构建工作。当然,这是一个丑陋的解决方案,但它可以完成工作。更好的解决方案是修复配置脚本,但我还没有时间去做。另外值得注意的是,nettle 3.0 没有这个问题。太糟糕了 gnutls 不适用于新版本。

于 2014-09-25T06:32:22.180 回答
0

更新:我创建了一个补丁,它在 Makefile.in 文件中完成了上述所有修复。因此,您不必自己修复它们。最理想的情况是,只需解压缩源代码,应用补丁程序并按照您通常的方式继续执行 ./configure。

从这里获取:http: //pastebin.com/36M5LHK3

于 2014-09-25T07:41:17.957 回答