在尝试创建 x86-64 设备时,我自然想要编译 glibc 2.23。我设法做到了
mkdir build
cd build
../configure --enable-kernel=2.6.32
--with-headers=/path/to/appliance/kernel/headers
--prefix=/usr
和
make -j4 install_root=/path/to/appliance/root && make install install_root=/path/to/appliance/root
结果超过 100 MB,我查看了 Debain libc 包,想知道相比之下他们是如何让它只有几兆字节的。似乎大部分空间都来自我可能永远不需要的语言环境和字符集。
可以把东西剪掉吗?
答案1
不完全是您问题的答案,但由于大小很重要,您应该考虑使用musl
而不是glibc
.这也使得所有静态或动态链接到该 libc 的二进制文件变得更小。
http://elinux.org/images/e/eb/Transitioning_From_uclibc_to_musl_for_Embedded_Development.pdf
答案2
不要构建不需要的语言环境,删除不需要的所有静态库,并从共享库中删除调试符号。这应该可以很好地缩小它的大小。