【问题标题】:How to generate import library (libsample.a) from dynamic library (libsample.so) in Linux如何在 Linux 中从动态库 (libsample.so) 生成导入库 (libsample.a)
【发布时间】:2010-08-05 09:53:56
【问题描述】:

在 Linux 上创建动态库后,我想从动态库 (.so) 生成导入库 (.a)。我该怎么做?

【问题讨论】:

  • 可以在 Linux 上创建导入库,但这取决于您的意图。为什么需要它们,即为什么链接 .so 还不够?

标签: c++


【解决方案1】:

实际上,linux 中的动态库并不需要'import library'。 'import library'是windows中的想法:当你构建一个dll时,vs也会给你一个lib文件作为'import library',或者你必须通过一些'ref'文件来构建你自己的'import library'。

*.a 在 linux 中是存档文件,我们说它只是将目标文件压缩并使其成为一个对象,不完全是,但是,在某种意义上你可以这样理解它。获取 *.a 并调用它很容易。

*.a:

{编译器,gcc就是一个简单的例子} -g -c *.c

ar -{一些标志,取决于你的编译器,-c 是一个简单的例子} liba.a *.o

{linker, gcc 就是一个简单的例子} -g -o a -la -L.

【讨论】:

  • 我看到一些公共库生成两个文件:Linux 上的动态库和导入库。我不想直接链接 .so 文件,因为它在 Mac OS 上不起作用
猜你喜欢
  • 2016-07-04
  • 2020-10-17
  • 1970-01-01
  • 2021-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多