【问题标题】:Linux From Scratch error in Bison-3.0.4 'make check'Bison-3.0.4 'make check' 中的 Linux From Scratch 错误
【发布时间】:2018-06-22 17:02:39
【问题描述】:

所以我正在关注Linux From Scratch一书,并在5.17 Bison-3.0.4一章中。

本书指导我们在make之后做一个make check来测试编译Bison包的结果。

最初,我收到以下错误:

make[3]: Entering directory `/sources/bison-3.0'
  LEX      examples/calc++/calc++-scanner.cc
  CXX      
examples/calc++/examples_calc___calc__-calc++-scanner.o
g++: error: ./examples/calc++/calc++-scanner.cc: No such file or directory
g++: fatal error: no input files
compilation terminated.
make[3]: *** 
[examples/calc++/examples_calc___calc__-calc++-scanner.o] Error 1
make[3]: Leaving directory `/sources/bison-3.0'
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `/sources/bison-3.0'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/sources/bison-3.0'
make: *** [check] Error 2

但在this website 上找到了解决方案。这告诉我在发出make check之前做以下事情:

cp Makefile Makefile.bak
sed -i '/calc++/d' Makefile
make check

这解决了问题,除了以下三个 FAILED 检查之外,所有检查都得到绿色 ok

430: Variants lalr1.cc parse.assert api.token.constructor FAILED (c++.at:374)
431: Variants lalr1.cc parse.assert api.token.constructor api.token.prefix={TOK_} FAILED (c++.at:375)
432: Variants lalr1.cc parse.assert api.token.constructor api.token.prefix={TOK_} %locations FAILED (c++.at:376)

我尝试在 Google 上搜索,但一无所获。

有什么想法吗?

【问题讨论】:

  • 请阅读网站指南,您需要提供一个最小但完整的示例。此外,在用任何东西标记您的问题之前,请确保该标记确实适用。
  • @UlrichEckhardt - 我链接的书就是例子。不幸的是,我无法输入整本书,因为那太长了。因此,为什么我将它链接起来......这个问题针对的是那些熟悉 Linux From Scratch 的人。因此我使用标签lfs。这是尽可能具体的。
  • 我也不想变得粗鲁。但是,首先,从主题中删除标签,它们会不必要地膨胀它。然后,阅读“linux”标签的描述:这里没有什么是特定于 Linux 的,它也可能出现在任何其他系统上。 OTOH,我猜了一下,因为你没有一个最小的例子,这就是真正缺少的。获取代码并提取一个。这确保了所有必要的信息,但没有多余的信息。根据 SO 规则,发布链接并要求其他人在其中找到相关信息只会使您的问题偏离主题。
  • 您引用的消息似乎表明缺少一个包。您是否安装了flex 中详细说明的the follow up
  • @UlrichEckhardt 我认为您误解了问题的含义。 OP 没有编写任何代码,因此没有什么可发布的最小示例。 OP 正在尝试从头开始构建 Linux 系统,其中一部分是编译 bison,这显然在 make check 阶段失败了。

标签: c++ linux bison flex-lexer linux-from-scratch


【解决方案1】:

这是常见的错误。如Chapter 4.6. About the Test Suites中所述:

经验表明,跑步没有什么好处 第 5 章中的测试套件。无法回避这样一个事实: 主机系统总是对测试产生一些影响 章,经常造成莫名其妙的故障。因为构建的工具 第 5 章中的内容是暂时的并最终被丢弃,我们不 建议为普通读者运行第 5 章中的测试套件。 提供了运行这些测试套件的说明 测试人员和开发人员的好处,但它们是严格可选的。

解决方案很简单——不要对第 5 章中编译的包运行测试。它们会失败,这没有任何意义。构建真实系统时,第 6 章中的测试很重要。

【讨论】:

  • 感谢您的回答:)。我刚刚意识到在第 5 章中没有必要进行测试。
猜你喜欢
  • 2019-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-24
  • 2012-09-12
  • 1970-01-01
  • 2011-06-23
  • 2015-09-06
相关资源
最近更新 更多