당연히 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
결과는 100MB가 넘었고 Debain libc 패키지를 살펴보며 어떻게 비교하면 몇 메가바이트에 불과한지 확인했습니다. 대부분의 공간은 나에게 전혀 필요하지 않은 로캘과 문자 집합에서 나오는 것 같습니다.
끊어도 될까요?
답변1
귀하의 질문에 대한 정확한 답변은 아니지만 크기가 중요하므로 musl
대신 libc를 사용하는 것이 좋습니다 glibc
. 이렇게 하면 모든 바이너리가 해당 libc에 정적 또는 동적으로 연결되어 더 작아집니다.
http://elinux.org/images/e/eb/Transitioning_From_uclibc_to_musl_for_Embedded_Development.pdf
답변2
필요하지 않은 로케일을 빌드하지 말고, 필요하지 않은 정적 라이브러리를 제거하고, 공유 라이브러리에서 디버깅 기호를 제거하십시오. 그러면 크기가 멋지게 줄어들 것입니다.