2012-01-26 2 views
1

내 응용 프로그램에서 boost-thread를 사용하고 있습니다. 이 애플리케이션을 클라이언트 시스템 (Ubuntu 11.10 실행)에 배포 할 때 libboost_thread.so를 시스템에서 사용할 수 있는지 확인해야합니다. 그러나 "apt-get install libboost-thread1.46"을 실행하면 전체 개발 환경 (libgcc, libbost1.46-dev 등)이 필요합니다. 이 기계는 개발 환경이 아닌 런타임 환경 만 필요합니다. 이 문제를 해결할 더 좋은 방법이 있는지 궁금합니다.C++ 부스트 스레드 라이브러리가 전체 개발 환경에서 가져옵니다.

답변

2

이러한 패키지 예외 : 정규 표현식으로 apt-get에 의해 처리되는 패키지 "libboost-thread1.46"우분투에 존재하지 않는, 그리고 개발 패키지 는 표현과 일치합니다. 두 후보 패키지의 이름은 libboost-thread1.46-devlibboost-thread1.46.1이며, 후자는 원하는 패키지입니다. 3 개의 라이브러리 (libgcc, libc, libstdC++), 에만 의존하며, 여러분의 프로그램과 libboost-thread가 그들과 링크하기 때문에 어쨌든을 배포해야합니다.

따라서 libboost-thread1.46.1을 설치하여 배포하면 모든 것이 잘됩니다.

+0

그래서 그것은 사용자 실수였습니다 :-(.. 나를 고쳐 주셔서 감사합니다. – Peter

1

부스트 타르를 다운로드하고 bjam 빌드 도구를 사용하여 직접 개별 요구 사항을 만들 수 있습니다.

1

부스트에 대해 정적으로 연결할 수 있습니다.

+0

나는 그것을 몰랐다. 정적으로 어떻게 링크합니까? – Peter

+0

'-Wl, -Bstatic -lboost_foo -Wl, -Bdynamic'이 트릭을해야합니다. –

1

bcp을 사용하고 필요한 파일을 자신의 소스 트리에 복사 할 수도 있습니다. 필자는 개인적으로 헤더 파일을 내 시스템에 설치하고 프로젝트에 소스 파일을 추가했습니다 (Linux에서는 once.cpp, thread.cpp, timeconv.inl, tss_null.cpp).

+0

이것은 좋은 옵션처럼 보입니다. 나는 그것을 조사 할 것이다. 고맙습니다. – Peter