【发布时间】:2011-05-29 15:13:57
【问题描述】:
在 Debian Squeeze 上安装 liboost-dev 会给我几个库,例如 /usr/lib/libboost_thread.so.1.42.0,但没有 libboost_thread.so。现在我无法使用 gcc / ld 的 -l 标志进行链接,因为名称不以 .so 结尾。
我注意到/usr/lib 有很多其他形式为libfoo.so.N 的库没有libfoo.so,所以这不是Boost 特有的。我最终手动添加了libboost_thread.so.1 和libboost_thread.so 符号链接。 (ldconfig 的手册页建议它会添加链接,但它没有做任何事情)。
一切正常,但感觉很脏。我应该怎么做?
- 使用一些我还没有找到的更具体的链接器选项(代价是使我的 makefile 依赖于特定的版本号)。
- 只需手动添加符号链接(有破坏包管理的风险)。
- 其他一些 Debian 的“正确方法”。
【问题讨论】:
-
如果这个问题看起来很熟悉,几周前我问过类似的问题,将其删除为题外话,再次改变主意,然后发现我需要 +10k 业力来恢复我自己删除的帖子。
标签: linux gcc shared-libraries debian