【发布时间】:2014-06-09 20:59:08
【问题描述】:
我开发了一个共享库B.so,它依赖于A.so。 当我使用B.so编写程序test.exe时,但出现编译错误,它说找不到某些符号(符号在A.so中)。 我的构建线:
gcc test.c -o test.exe -fPIC -I./ -L./ -lB
我们有没有方法,如何成功构建test.exe,但不能链接A.so。
【问题讨论】:
-
您是否也尝试过与
A链接? -
是的,如果我添加 A.so 就可以了。我想构建一个 SDK b.so,但是我不想构建 test.exe 需要 A.so
-
所以您希望 A 库中的符号(变量/函数/等)神奇地出现在与库 B 链接的任何内容中?对于大多数编译器来说,这不太可能。不过,您可能会将 A 完全包含在 B 中以解决这个问题...
-
@twalberg 前段时间 GNU
ld在这种情况下有不同的行为,它确实自动链接到A.so。但它不再这样做了。
标签: c linux shared-libraries .a