我正在尝试在我的 Linux Mint 主机上构建一个 Linux From Scratch 系统。但是,当我运行 version-check.sh 文件时,它返回我的系统缺少libgmp.la
、libmpfr.la
和libmpc.la
,即使我有libgmp10
、lipmpc3
和libmpfr4
。这是版本检查的输出:
bash, version 4.2.45(1)-release
/bin/sh -> /bin/dash
Binutils: (GNU Binutils for Ubuntu) 2.23.52.20130913
bison (GNU Bison) 2.7.12-4996
/usr/bin/yacc -> /usr/bin/bison.yacc
bzip2, Version 1.0.6, 6-Sept-2010.
Coreutils: 8.20
diff (GNU diffutils) 3.2
find (GNU findutils) 4.4.2
GNU Awk 4.0.1
/usr/bin/awk -> /usr/bin/gawk
gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
g++ (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
(Ubuntu EGLIBC 2.17-93ubuntu4) 2.17
grep (GNU grep) 2.14
gzip 1.6
Linux version 3.11.0-12-generic (buildd@komainu) (gcc version 4.8.1
(Ubuntu/Linaro 4.8.1-10ubuntu7) ) #19-Ubuntu SMP Wed Oct 9 16:12:00 UTC 2013
m4 (GNU M4) 1.4.16
GNU Make 3.81
GNU patch 2.7.1
Perl version='5.14.2';
sed (GNU sed) 4.2.2
tar (GNU tar) 1.26
xz (XZ Utils) 5.1.0alpha
g++ compilation OK
libgmp.la: not found
libmpfr.la: not found
libmpc.la: not found
笔记:我正在关注本书的 7.5 版本,并且使用 32 位 Linux Mint 主机(内核 3.11.0-12)。
答案1
我还尝试在我的系统上构建 LFS 系统。我使用的是 Ubuntu 14.04。我在版本检查期间收到了同样的消息。我继续阅读第 5 章,在安装 gcc 期间,make 失败并出现错误。检查了一些在线帮助和邮件列表,我发现我必须指出库存在的位置,即/usr/lib
我从中找到的堆栈溢出问题。
我搜索了一下/usr/lib
,发现这些库不存在。所以,我下载并安装了 mpfr、gmp 和 mpc。请点击以下链接:良好生产规范,MPFR和多普勒。
笔记:遵循构建并安装指示给出了 mpc 和 mpfr 的 gmp。使用make check
gmp 导致 1 次测试失败,我认为这在 LFS 中不会成为问题,希望如此。 gmp make check 1 次测试失败的示例这里。
答案2
这将创建一个已安装软件包的文件:
dpkg --get-selections > package_list
cat package_list | grep ^gcc
-> OK!
cat package_list | grep gmp
-> libgmp10:amd64
cat package_list | grep mpfr
-> libmpfr4:amd64
cat package_list | grep mpc
-> libmpc3:amd64
locate libgmp10
-> /var/lib/dpkg/info/libgmp10:amd64.list
locate libmpfr4
-> /var/lib/dpkg/info/libmpfr4:amd64.list
locate libmpc3
-> /var/lib/dpkg/info/libmpc3:amd64.list
cat /var/lib/dpkg/info/libgmp10\:amd64.list
-> /usr/lib/x86_64-linux-gnu/libgmp.so.10.2.0
-> /usr/lib/x86_64-linux-gnu/libgmp.so.10
cat /var/lib/dpkg/info/libmpfr4\:amd64.list
-> /usr/lib/x86_64-linux-gnu/libmpfr.so.4.1.2
-> /usr/lib/x86_64-linux-gnu/libmpfr.so.4
cat /var/lib/dpkg/info/libmpc3\:amd64.list
-> /usr/lib/x86_64-linux-gnu/libmpc.so.3.0.0
-> /usr/lib/x86_64-linux-gnu/libmpc.so.3
如果与 64 位架构和基于 Debian 的操作系统一起使用,则此要求将导致 找不到libgmp.la
、libmpfr.la
和。libmpc.la
然而,上述过程的结果表明这些包确实存在于系统上,因此可以继续前进。
答案3
Creek 对你的问题的评论中给出了答案:LFS 书(我引用的是 7.6)对于你提到的三个库(libgmp.la、libmpfr.la 和 libmpc.la)有这样的说法:
“此脚本识别的文件应该全部存在或全部不存在,但不仅仅是一两个存在。”
也就是说,根据您的输出,您无需对这些库执行任何其他操作。也就是说,我还没有完成 LFS 安装。我的答案和书上的一样好。我自己最终来到这里,因为我最初也有同样的问题。
答案4
下载、解压、编译并安装以下库:
- libgmp.la
- libmpfr.la
- libmpc.la
执行此操作的一般程序是:
tar -xvf lib.name
cd lib.name
./configure --prefix=/usr
sudo make
sudo make install
bash library-check.sh