boost C++ 库由几个组件组成。某些组件确实包含共享库,而其他组件则不包含。
在一个Fedora 14系统,我打量了一下周围yum search boost
,并rpm -qR
确实喜欢与其他发行Boost库被分成几个包。
例如, boost-program-options 只包含 boost program-options 组件的共享库。
似乎包boost
依赖于所有共享库子包。有boost-devel
这似乎提供了所有页眉和依赖的所有共享库的子包(通过增压)。
在没有所有 boost 共享库包的情况下,不可能通过 yum(使用默认存储库)安装 boost 头文件是对的吗?
看boost-devel包,需要同版本的boost包。以下是 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
Run Code Online (Sandbox Code Playgroud)
boost-devel 包是唯一具有 boost 头文件的包,它需要其他包,所以你的问题的答案是:不,你不能安装只提供头文件的包。Fedora 包通常有它们的-devel
包需要另一个包,其中包含用于使用包中的头文件进行编译的任何库,就像在这种情况下一样。