c++ - 在 C++ 中使用库中的功能子集

标签 c++ linker include

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

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

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

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

最佳答案

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

关于c++ - 在 C++ 中使用库中的功能子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28921922/

相关文章:

regex - OCaml 中的正则表达式

c++ - 如何使用 vtable 确定类类型

c++ - wxWidgets - 单击按钮时在不同 View 之间切换

c++ - C++ 中非常特殊的链接器错误

c++ - "non-virtual thunk to <method name>", 引用自 : Vtable for <classname>in <objectfile. o>

javascript - 调用 phonegap.js 将不起作用

c++ - 我写了这个程序来反转链表中的元素,编译这个程序后在 reverse () 中显示错误。为什么?

c++ - 与显式初始化相比,了解 C++ 中的复制初始化

C++ header-only 包含模式

包含投影不起作用