我应该如何在一个小项目中编译boost库?

时间:2010-05-26 11:32:55

标签: c++ boost

我有一个小项目,我只需要升级库的一部分,特别是boost :: regex。这就是我到目前为止所做的:

/include
  /boost
    /regex
    /math
    .. 189 dirs, files, etc.
/lib
  /boost-regex
    c_regex_traits.cpp
    cpp_regex_traits.cpp
    .. ~20 .cpp files
myprog.cpp

在我的Makefile中,我逐个编译所有boost-regex .cpp文件,生成.obj个文件。接下来,我正在通过编译myprog.cpp以及来自/lib/boost/regex的所有.obj文件来构建我的项目。

问题是我是否正确地做了一切?我的输出文件的大小相当大(~3.5Mb),而我的代码非常小(10行)。

PS。我的编译器:

$ c++ —version
i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5659)

1 个答案:

答案 0 :(得分:2)

为什么不将regex库构建为静态库,并通过编写#include <boost/regex.hpp>在代码中使用它的功能?

这不应该影响应用程序的最终大小,因为编译器只接受应用程序中实际使用的那些函数

此外,如果您不想自己构建不同平台的预编译boost库,可以在Internet上找到它们。在这种情况下,您需要做的只是采取适当的库并包含适当的标题。