【发布时间】:2011-05-06 00:20:52
【问题描述】:
库 liba 定义了某个函数 f。在编写使用函数 f 的 C 程序时,除非我在编译命令中添加 -lb,否则编译将不会完成,即使我没有在我的 C 代码中直接引用 libb 中的任何内容。但是,使用 p/invoke,我没有链接到库 b 的选项,当我从 C# 代码中调用函数 f(当然是在 [DllImport("liba")] 之后)时,我得到了符号查找错误:/usr/lib/liba.so:未定义符号:X(X 在 libb 中定义)。 ldd /usr/lib/liba.so 不包含引用 libb 的行。 libb 在 /usr/lib 中。我相信这个问题与Linux, Mono, shared libs and unresolved symbols 基本相同,但与那种情况不同,我无法重新编译 liba。有什么办法可以解决这个问题吗?
【问题讨论】: