2010-05-04 2 views
8

여러 Linux 배포판에서 실행할 수있는 바이너리 패키지를 빌드하려고합니다. 그것은 현재 우분투 10.04을 기반으로하지만, 다음과 같은 오류와 우분투 8.04에 실패 할 것 :최신 glibc가 필요없는 소프트웨어를 빌드하는 가장 좋은 방법은 무엇입니까?

./test: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./test) 
./test: /usr/lib/libstdc.so.6: version `GLIBC_2.11' not found (required by ./test) 

이 문제를 해결하기 위해 선호하는 방법은 무엇입니까? 새 상자에 이전 glibc를 설치하고 빌드 할 수있는 방법이 있습니까? 아니면 기존 배포판을 기반으로 빌드해야합니까? 그리고 만약 내가 오래된 glibc와 비교해 보면, 새로운 glibc에서 동작 할까?

또는 문제를 해결하기 위해 설치할 수있는 편리한 컴파일러 플래그 또는 패키지가 있습니까?

답변

5

내가 찾은 최선의 해결책은 데비안 안정을 실행하는 가상 머신을 설치하고 그 위에 구축하는 것입니다. 데비안 안정 패키지는 빌드가 포함 된 패키지가 우분투와 같은 다른 데비안 기반 배포판에서 실행될 수있을 정도로 오래되었습니다. 최신 버전의 다양한 소프트웨어에서 수정되었지만 데비안 안정판으로 백 포트되지 않은 중요하지 않은 버그를 해결해야 할 수도 있습니다.

+0

나는 glibc의 고대 버전을 기반으로하는 건물이 새로운 버전의 glibc에서도 잘 작동한다는 것을 의미합니까? – ZorbaTHut

+0

내가 아는 한, 그렇습니다 ... 나는 그것을이 방법으로 놓아 두지 만, 그것은 아직 잘못되지 않았습니다. ;-) – ptomato

1

모든 최신 배포판에서 실제로 실행되도록하려면 선택한 libC에 대해 정적으로 링크하는 것이 좋습니다. 그러나 새로운 커널에서만 제공되는 기능 (예 : 최신 시스템 호출)을 사용하면 여전히 문제가 발생할 수 있습니다.

관련 문제