使用C ++库中的一部分功能

时间:2015-03-08 00:58:22

标签: c++ linker include

我在我的一个项目中使用SNAP库。我有一个#include"Snap.h",它为我提供了整个库的功能。 但是,我只是使用k-core算法和底层图DS。

图书馆提供了许多额外的DS +算法,如下所述: http://snap.stanford.edu/snap/description.html

如果我编译整个项目并将我的代码链接到这个库,似乎我最终会得到很多额外的东西?此外,我需要设置整个项目目录以包含适当的标题。

这种情况对C ++来说似乎很普遍,有没有一种快速简便的方法来编译这个库的子集只有我需要的功能?

2 个答案:

答案 0 :(得分:1)

  1. 如果库动态链接并以预编译二进制文件形式分发,则必须使用
  2. 如果库是静态链接的,则可以使用死代码消除(如果编译器支持它)
  3. 如果您有来源,可以通过删除未使用的代码来修剪库 - 即。仅根据选定的代码创建自己的库

答案 1 :(得分:0)

我通过使用Boost并使用bcp实用程序来提取库的相关部分来解决我的问题。