我理解共享与静态库的重要性。但是,我遇到的几个程序建议使用
进行编译--enable-static
而其他推荐
--disable-shared
这些是一回事吗?如果没有,有什么区别?
如果可能的话,请举例说明何时使用一个而不是另一个。
答案 0 :(得分:4)
在通常情况下,这些是切换到由Autoconf和Libtool生成的“配置”脚本,然后它们正式表示密切相关但不同的事情。 --enable-static
表示做构建静态库; --disable-shared
表示不构建共享库。
如果您想确保只获取静态库,则无论如何都需要提供两个选项。但是,通常只有--disable-shared
会产生这种影响,因为考虑一下可能性:如果默认情况下包只构建静态库,那么--disable-shared
就是无操作;如果它默认构建静态库和共享库,那么你只需要关闭共享库来获得你想要的东西;如果它默认只构建共享库,那么你可能认为你需要两个选项,但如果你只是说--disable-shared
,Libtool通常会注意到它现在被要求构建没有,假设那可能不是您想要的,并为您翻转--enable-static
开关。