【发布时间】:2011-10-16 14:18:40
【问题描述】:
从 /some/lib 中的共享库 libA.so 开始。 我构建了依赖于 libA.so 功能的库 (libB.so)。因此,在创建 libB.so 时,我在 g++ 命令行中包含 -L/some/lib -lA。 libB.so 也将驻留在 /some/lib 中。
现在,我正在构建一个将使用 libB.so 的可执行文件。我将预期的 -L/some/lib 和 -lB 提供给 g++ 链接器。但我收到一个错误,因为它找不到“libA.so”。如果我在链接器行中添加“-lA”,程序就会链接。
我不明白为什么它找不到“libA.so”。我当然不明白为什么在链接器行中包含“-lA”会让它找到它。它似乎已经知道它需要 libA.so,并且 libA.so 与 libB.so 处于同一路径。
有人能解释一下吗?我不喜欢必须在每个想要链接 libB.so 的可执行文件中显式放置“-lA”的想法。我做错了什么吗?
【问题讨论】:
标签: c++ linux dynamic-linking