2010-03-19 6 views
1

나는 정적 버전의 qt를 만들고 정적 버전의 glibc를 다운로드했습니다. 이제 glibc를 내 qt 응용 프로그램에 정적으로 링크하고 싶습니다. 나는 .pro에 들어가서 LIBS + = -L path/to/static_lib 줄을 추가하는 것에 대해 알고 있지만, 이것으로 충분할 지 궁금하다. OS가 동적 라이브러리를 가지고 있지만 정적으로 glibc를 여전히 링크합니까? 내가 이것을하는 이유는 독립 실행 형 방식으로 응용 프로그램을 배포하는 것입니다. (Red Hat 5.3 설치 및 업데이트 후 대상 컴퓨터에서 glibc_2.9를 찾을 수 없음)glibc를 qt와 정적으로 링크하는 방법

답변

2

-static을 gcc에 전달하면 가능한 경우 정적으로 링크되도록합니다.

또는 CentOS 5을 다운로드하여 설치하고 그 위에 빌드하십시오.

+0

Cent OS에서 구축하면 더 많은 배포판과 호환되는 바이너리가됩니까? –

+0

CentOS는 RHEL과 이진 호환됩니다. –

+0

감사합니다. 나는 이것을 알지 못했습니다. RHEL에서 곧바로 구축하는 것이 더 좋을 것 같습니다. 저는 사무실에서 한 대가 운영되고 있습니다. 또한, libc를 정적으로 링크하는 것은 쉬운 일이 아니라고 들었습니다. 이것은 정적으로 모든 것을 링크하는 것을 의미하며 런타임에 몇 가지 의미가 있습니다. 정적으로 libc를 연결 한 후 나는 몇 가지 경고를 받았고 RHEL에서 실행했을 때 세분화 오류가 발생했습니다. –

1

당신이 발견 한 것처럼 완전히 정적으로 glibc로 링크하는 것은 불가능합니다. 예를 들어 nss 지원이 동적으로로드되기 때문입니다. 그러나 필요한 glibc 버전은 주로 실제로 사용하는 기능에 따라 다릅니다.

어쨌든 Linux Standard Base, 을 사용해야한다고 생각하는 이유는 here입니다.

관련 문제