부스트 C++ 라이브러리는 여러 구성 요소로 구성됩니다. 일부 구성 요소에는 공유 라이브러리가 포함되어 있고 일부 구성 요소에는 포함되어 있지 않습니다.
Fedora 14 시스템에서 몇 가지 조사를 한 결과 yum search boost
실제로 rpm -qR
다른 배포판과 마찬가지로 부스트 라이브러리가 여러 패키지로 나누어져 있다는 사실을 발견했습니다.
예를 들어, Boost-program-options에는 Boost 프로그램 옵션 구성 요소의 공유 라이브러리만 포함되어 있습니다.
패키지가 boost
모든 공유 라이브러리 하위 패키지에 의존하는 것 같습니다. boost-devel
모든 헤더를 제공하고 (부스트를 통해) 모든 공유 라이브러리 하위 패키지에 의존하는 것으로 보입니다 .
모든 부스트 공유 라이브러리 패키지 없이 yum(기본 저장소 사용)을 통해 부스트 헤더를 설치할 수 없다는 것이 맞습니까?
답변1
동일한 버전의 부스트 패키지가 필요한 Boost-devel 패키지를 확인하십시오. Boost-devel 패키지에 필요한 사항은 다음과 같습니다.
$ rpm -qRp boost-devel-1.44.0-7.fc14.x86_64.rpm
boost = 1.44.0-7.fc14
cmake
libboost_date_time-mt.so.1.44.0()(64bit)
libboost_date_time.so.1.44.0()(64bit)
libboost_filesystem-mt.so.1.44.0()(64bit)
libboost_filesystem.so.1.44.0()(64bit)
libboost_graph-mt.so.1.44.0()(64bit)
libboost_graph.so.1.44.0()(64bit)
libboost_iostreams-mt.so.1.44.0()(64bit)
libboost_iostreams.so.1.44.0()(64bit)
libboost_prg_exec_monitor-mt.so.1.44.0()(64bit)
libboost_prg_exec_monitor.so.1.44.0()(64bit)
libboost_program_options-mt.so.1.44.0()(64bit)
libboost_program_options.so.1.44.0()(64bit)
libboost_python-mt.so.1.44.0()(64bit)
libboost_python.so.1.44.0()(64bit)
libboost_random-mt.so.1.44.0()(64bit)
libboost_random.so.1.44.0()(64bit)
libboost_regex-mt.so.1.44.0()(64bit)
libboost_regex.so.1.44.0()(64bit)
libboost_serialization-mt.so.1.44.0()(64bit)
libboost_serialization.so.1.44.0()(64bit)
libboost_signals-mt.so.1.44.0()(64bit)
libboost_signals.so.1.44.0()(64bit)
libboost_system-mt.so.1.44.0()(64bit)
libboost_system.so.1.44.0()(64bit)
libboost_thread-mt.so.1.44.0()(64bit)
libboost_unit_test_framework-mt.so.1.44.0()(64bit)
libboost_unit_test_framework.so.1.44.0()(64bit)
libboost_wave-mt.so.1.44.0()(64bit)
libboost_wserialization-mt.so.1.44.0()(64bit)
libboost_wserialization.so.1.44.0()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rpmlib(PayloadIsXz) <= 5.2-1
Boost-devel 패키지는 부스트 헤더가 있는 유일한 패키지이므로 다른 패키지가 필요하므로 질문에 대한 대답은 다음과 같습니다.아니요, 헤더 전용 패키지는 설치할 수 없습니다.Fedora 패키지에는 -devel
이 예제와 같이 패키지의 헤더를 사용하여 컴파일하기 위한 라이브러리가 포함된 다른 패키지가 필요한 패키지가 있는 경우가 많습니다.
답변2
Boost의 대부분은 헤더 라이브러리일 뿐입니다. 하지만 일부는 컴파일해야 합니다. jsbillings의 답변에는 모두 나열되어 있습니다. 컴파일된 라이브러리가 필요한 라이브러리를 사용하지 않을 경우 해당 라이브러리를 설치할 필요가 없습니다. 헤더를 설치하면 됩니다.
여기를 보아라:Unix 플랫폼 시작하기.
답변3
공유 라이브러리가 필요하지 않은 헤더를 다른 패키지로 분할할지 언제든지 부스트 관리자에게 문의할 수 있습니다.
하지만 여기서 1센트의 디스크 공간이 왜 중요한지 정말 알고 싶습니다. 특히 일부 헤더가 공유 라이브러리가 필요하지 않다는 것을 보장하지 않는다는 사실을 알고도 놀라지 않을 것입니다(지금 구현된 방식이더라도).