为什么Boost::Filesystem有一个二进制部分?

为什么Boost::Filesystem有一个二进制部分?,boost,boost-filesystem,Boost,Boost Filesystem,出于对知识的好奇,我想知道为什么boost::filesystem库有一个编译组件,而在其他情况下不需要编译组件。编译部分中哪些内容不能在hpp中 真正让我困惑的是,我在我的计算机上编译了这一部分(在使用库之前),因此我希望每次构建我的应用程序时都可以或者甚至更愿意执行我在BJam中所做的编译 为什么会有额外的.so/.a文件?一些boost库只是头文件,而另一些则需要构建(系统、文件系统、图形、mpi、序列化等);可以将多个boost库配置为仅标头或单独构建 单独构建的lib的优点非常明显:您

出于对知识的好奇,我想知道为什么boost::filesystem库有一个编译组件,而在其他情况下不需要编译组件。编译部分中哪些内容不能在hpp中

真正让我困惑的是,我在我的计算机上编译了这一部分(在使用库之前),因此我希望每次构建我的应用程序时都可以或者甚至更愿意执行我在BJam中所做的编译


为什么会有额外的.so/.a文件?

一些boost库只是头文件,而另一些则需要构建(系统、文件系统、图形、mpi、序列化等);可以将多个boost库配置为仅标头或单独构建

单独构建的lib的优点非常明显:您自己的项目编译速度更快,并且依赖的外部代码更少

顺便说一句,看看下面的线程:

第二部分我不懂。既然可以一次构建,为什么一次又一次地构建更可取呢?从*.hpp文件一次又一次地构建是boost库的大多数部分都会发生的事情。C++代码通常是如何编译的?对于Boost::Filesystem,这是一个额外的.so/.a文件。boost的其他部分(如boost::format)并非如此。