Bc 软件包包含一个任意精度数值处理语言。
首先修改一个内部脚本,使它使用 sed, 而不是 ed:
cat > bc/fix-libmath_h << "EOF" #! /bin/bash sed -e '1 s/^/{"/' \ -e 's/$/",/' \ -e '2,$ s/^/"/' \ -e '$ d' \ -i libmath.h sed -e '$ s/$/0}/' \ -i libmath.h EOF
创建一个临时的符号链接,使该软件包可以找到 readline 库, 并确认它需要的 libncurses 库可用。虽然目前它还在 /tools/lib 中,但在本章结束时系统会使用 /usr/lib 中的最后版本。
ln -sv /tools/lib/libncursesw.so.6 /usr/lib/libncursesw.so.6 ln -sfv libncurses.so.6 /usr/lib/libncurses.so
由于LFS 早期阶段缺失了一些文件,需要修正 configure 中的一个问题:
sed -i -e '/flex/s/as_fn_error/: ;; # &/' configure
准备安装 Bc:
./configure --prefix=/usr \ --with-readline \ --mandir=/usr/share/man \ --infodir=/usr/share/info
配置选项的含义:
--with-readline
该选项告诉 Bc 使用系统中已经安装好的 readline
库,而不是它自己附带的 readline 。
编译该软件包:
make
为了测试 bc,执行以下命令。它会输出很多内容, 因此您可能希望把输出重定向到文件。 少量测试 (12144 个测试中有 10 个)会在最后一位出现舍入误差。
echo "quit" | ./bc/bc -l Test/checklib.b
安装该软件包:
make install