我有一个小项目,我只需要升级库的一部分,特别是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)
答案 0 :(得分:2)
为什么不将regex
库构建为静态库,并通过编写#include <boost/regex.hpp>
在代码中使用它的功能?
这不应该影响应用程序的最终大小,因为编译器只接受应用程序中实际使用的那些函数。
此外,如果您不想自己构建不同平台的预编译boost库,可以在Internet上找到它们。在这种情况下,您需要做的只是采取适当的库并包含适当的标题。