ubuntu下的共享库

时间:2010-04-14 10:15:07

标签: c# ubuntu pinvoke single-responsibility-principle

我使用make在ubuntu下编译了srp-2.1.2,它创建了一个文件libsrp.a。任何人都可以告诉我如何使用libsrp.a作为共享库?。我想在ubuntu下的c#文件中使用libsrp,使用dllimport.please告诉我libsrp.a文件是什么意思。

感谢

好的,当我使用nm -D libsrp.a时 那我有

c2 @ ubuntu:〜/ Desktop / srp-2.1.2 / libsrp $ nm -D libsrp.a

t_client.o: nm:t_client.o:没有符号

请告诉我如何获得所有符号。

感谢

1 个答案:

答案 0 :(得分:0)

libsrp.a文件是一个静态库;共享库将被称为libsrp.so之类的东西。 Here有一个答案描述了一种从静态库构建共享库的方法(我自己从未这样做过,所以不能保证它有效 - 祝你好运!)

更新:

使用带有nm参数的-D请求动态符号(请查看man nm) - 在我调用的问题中我正在使用-D进行调用共享库上的nm。您的libsrp.a是一个静态库,因此要查看您应该执行的符号

nm libsrp.a

但是,我认为您不应该看到符号来使用解释如何获取共享库的答案;如果答案是正确的,您应该只需要使用正确的参数调用gcc。我想,一旦你有了共享库,就可以使用nm查看它是否有你期望的符号;在这种情况下,需要-D参数:

nm -D libsrp.so