我使用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:没有符号
请告诉我如何获得所有符号。
感谢
答案 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