【发布时间】:2011-09-22 00:08:18
【问题描述】:
我正在使用 SFML,我编译了一个小测试程序并添加了链接选项-lsfml-audio。然后,我使用ldd ./program 查看它链接到的动态库。令人惊讶的是,有很多,我没有在我的 makefile 中手动选择它们,也没有使用pkg-config --libs。
我开始阅读有关共享库的内容,并做了一个小例子来解决我的疑问。但是,我有一个问题:
为什么有些库需要你在 makefile 中添加依赖项 (手动或使用
pkg-config之类的脚本)和其他 库会自动链接它们的依赖项吗?
当您创建动态库时,就像在g++ -shared ... 命令中添加正确的-ldependency 选项一样简单,以避免用户稍后手动添加依赖项的麻烦。为什么许多可用的库不这样做?
我想这一定与微调链接哪些库的能力有关。
【问题讨论】:
标签: c++ shared-libraries