如何优雅地引用常见 c/c++库的部分源码

2018-09-07 10:36:23 +08:00
 paparika
经常会想引用常见 c/c++库的部分源码,比如说 poco,boost 这类的,又不想全量编译这些库,仅仅是想利用那么一两个类而已,但是它们的引用关系通常比较复杂,一两个头文件里面各种交叉引用,如果自己抠源码的话,经常又涉及各类编译宏,有点没把握,不知道老铁们一般怎么解决的
2250 次点击
所在节点    Linux
7 条回复
paparika
2018-09-07 10:38:14 +08:00
如果是 pc 倒还好说,我这边是交叉编译,如果不抠源文件的话,又要去改造三方库的编译系统
paparika
2018-09-07 10:41:02 +08:00
比如我想利用 boost 里的 mutex,本来跟这几个头文件相关
#include <boost/thread/lock_guard.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/thread.hpp>
可以一看,每个头文件里又引用了好多其它头文件
huawuya
2018-09-07 17:59:22 +08:00
boost 可以用 bcp 裁剪,把要用的代码提出来。Poco 以前用的时候是把源码提出来,底层一些的类关联不多,前提是看懂代码了。
henglinli
2018-09-08 16:11:07 +08:00
@huawuya 正解。https://github.com/boostorg 所属的 repo,注意找齐依赖。
paparika
2018-09-10 11:03:00 +08:00
@huawuya
@henglinli 多谢,试了下 bcp 挺有用的,不过我就用了下 thread 里的锁而已,cpp 倒是裁剪得只剩十来个,hpp 竟然还要 2000+个,出乎意料
FrankHB
2018-09-16 07:03:42 +08:00
thread 的锁……你这是得多古董没法上 std 啊……
paparika
2018-09-17 09:32:31 +08:00
@FrankHB c++11 没有现成的读写锁

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/487018

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX