macOS链接器中与--as-needed等效的选项是什么?
macOS下与Linux链接器
--as-needed等效的选项? Linux链接器的相关行为
--as-needed选项:当链接命令中使用-lxyz但程序并未调用libxyz.so中的任何符号时,最终生成的可执行文件不会加载该库,以此避免保留未使用的库引用--no-as-needed选项:无论程序是否引用库中的符号,链接命令行里指定的所有库都会被可执行文件加载- 补充:Linux不同发行版的默认链接行为可能存在差异
macOS的对应处理方式
macOS的链接器并不支持--as-needed和--no-as-needed这两个选项:
- 默认行为等同于Linux的
--no-as-needed:只要在链接命令中列出的库,即便程序完全没有用到其中的符号,也会被可执行文件加载 - 可通过
otool -L命令查看可执行文件的依赖库列表,所有被链接的库都会被列出 - 目前没有等效于
--as-needed的设置,无法自动剔除未被程序引用的库依赖
内容的提问来源于stack exchange,提问作者Thierry Lelegard
相关产品推荐
相关产品推荐

