【发布时间】: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