--enable-static vs --disable-shared

时间:2018-04-09 12:56:42

标签: libraries

我理解共享与静态库的重要性。但是,我遇到的几个程序建议使用

进行编译
--enable-static

而其他推荐

--disable-shared

这些是一回事吗?如果没有,有什么区别?

如果可能的话,请举例说明何时使用一个而不是另一个。

1 个答案:

答案 0 :(得分:4)

在通常情况下,这些是切换到由AutoconfLibtool生成的“配置”脚本,然后它们正式表示密切相关但不同的事情。 --enable-static表示构建静态库; --disable-shared表示构建共享库。

如果您想确保只获取静态库,则无论如何都需要提供两个选项。但是,通常只有--disable-shared会产生这种影响,因为考虑一下可能性:如果默认情况下包只构建静态库,那么--disable-shared就是无操作;如果它默认构建静态库和共享库,那么你只需要关闭共享库来获得你想要的东西;如果它默认只构建共享库,那么你可能认为你需要两个选项,但如果你只是说--disable-shared,Libtool通常会注意到它现在被要求构建没有,假设那可能不是您想要的,并为您翻转--enable-static开关。