图书馆如何既静态又共享?

时间:2014-03-31 10:01:12

标签: gcc compilation lame

图书馆既静态又共享意味着什么?从我读过的内容来看,这两者是相互排斥的。 People tend to define one as the opposite of the other

但是阅读LAME的配置选项,我明白这一点。

  $ ./configure --help
  `configure' configures lame 3.99.5 to adapt to many kinds of systems.
  [...]
  --enable-shared[=PKGS]  build shared libraries [default=yes]
  --enable-static[=PKGS]  build static libraries [default=yes]
  [...]

1 个答案:

答案 0 :(得分:1)

这些标记的作用是构建共享库和静态库,它们不会尝试使单个库既静态又共享。

正如你所说,他们是相互排斥的"从某种意义上说 - 没有一个文件既可以是静态库,也可以是共享库。

在启用静态和共享库编译的Linux系统上,将同时提供* .a和* .so文件,* .so文件用于动态(共享)链接,而* .a文件是用于静态链接。