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

Mik*_*ail 3 boost boost-filesystem

出于好奇心,我想知道为什么boost :: filesystem库有一个编译组件,而在其他情况下,没有必要编译组件.编译部分中的什么不能在hpp中?

让我感到困惑的是,在我的计算机上,无论如何我都会编译这部分(在使用库之前),因此我希望每次构建应用程序时都可以执行我在BJam中执行的相同编译.

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

Igo*_* R. 5

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

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

顺便说一下,看看以下主题:http: //boost.2283326.n4.nabble.com/Lighweight-header-only-version-of-Boost-Filesystem-tt3749876.html#none