【问题标题】:shared library under ubuntuubuntu下的共享库
【发布时间】:2010-04-14 10:15:06
【问题描述】:

我在 ubuntu 下使用 make 编译了 srp-2.1.2,它创建了一个文件 libsrp.a。谁能告诉我如何使用 libsrp.a 作为共享库?我想通过使用 dllimport 在 ubuntu 下的 c# 文件中使用 libsrp。请告诉我 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: 无符号

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    更新:

    nm-D 参数一起使用会要求动态符号(查看man nm) - 在我与该人相关的问题中,他正在使用-D,因为他在 上调用nm共享库。你的 libsrp.a 是一个静态库,所以要查看你应该做的符号

    nm libsrp.a
    

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

    nm -D libsrp.so
    

    【讨论】:

      猜你喜欢
      • 2018-09-06
      • 2015-12-11
      • 2019-08-23
      • 2013-07-16
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      相关资源
      最近更新 更多