首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译nettle时出错-2.7.1

编译nettle时出错-2.7.1
EN

Stack Overflow用户
提问于 2014-09-22 23:39:21
回答 2查看 1.5K关注 0票数 0

当我试图编译nettle-2.7.1时,我得到了以下内容:

根@tcx2270-19:~/荨麻-2.7.1# make:警告:找不到aes-decrypt-internal.o.d': No such file or directory make: Fatal error in reader: Makefile, line 594: Read of include fileaes-解密-内部.o.d‘失败

有人看过这个问题吗?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-09-25 06:32:22

我也有同样的问题。这和gmp无关。./配置脚本生成一个损坏的Makefile。在对生成的Makefile进行了一些分析之后,我想出了一个解决方案。

在生成的Makefile的最底部搜索如下所示的行:

代码语言:javascript
复制
DEP_FILES = $(SOURCES:.c=.$(OBJEXT).d) $(SOURCES:.c=.p$(OBJEXT).d) asm.d

您可以通过将构建更改为以下行来修复该构建:

代码语言:javascript
复制
DEP_FILES = $(SOURCES:.c=.c.$(OBJEXT).d) $(SOURCES:.c=.c.p$(OBJEXT).d) asm.d

此外,我们还必须修复所有子目录中的Makefiles。

对于底部的./tools/Makefile,,可以找到如下所示的行:

代码语言:javascript
复制
include  $(SOURCES:.c=.$(OBJEXT).d)

并将其改为

代码语言:javascript
复制
include  $(SOURCES:.c=.c.$(OBJEXT).d)

此外,还需要添加以下两个构建目标:

代码语言:javascript
复制
../libnettle.a:
        $(MAKE) -C .. libnettle.a

../libhogweed.a:
        $(MAKE) -C .. libhogweed.a

对于最底层的./testsuite/Makefile,,可以找到如下所示的一行:

代码语言:javascript
复制
DEP_FILES = $(SOURCES:.c=.$(OBJEXT).d) $(CXX_SOURCES:.cxx=.$(OBJEXT).d)

并将其改为:

代码语言:javascript
复制
DEP_FILES = $(SOURCES:.c=.c.$(OBJEXT).d) $(CXX_SOURCES:.cxx=.cxx.$(OBJEXT).d)

最后,在最底层的./examples/Makefile,中,搜索如下所示的行:

代码语言:javascript
复制
include  $(SOURCES:.c=.$(OBJEXT).d)

并将其改为

代码语言:javascript
复制
include  $(SOURCES:.c=.c.$(OBJEXT).d)

啊,至少对我来说,这就是建造的工作。当然,这是一个丑陋的解决方案,但它可以完成任务。一个更好的解决方案是修复配置脚本,但我还没有时间去做。还值得注意的是,nettle3.0没有这个问题。不幸的是,gnutls不适用于那个更新的版本。

票数 1
EN

Stack Overflow用户

发布于 2014-09-25 07:41:17

UPDATE:我创建了一个修补程序,用于执行Makefile.in文件中的所有上述修复。因此,你不必自己修理它们。最优的做法是,只需解压缩源代码,应用修补程序,并按照通常的方式继续进行./配置。

从这里得到它:http://pastebin.com/36M5LHK3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25984688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档