整体 link 时间优化是否适用于静态库?
Does monolithic link-time optimization work with static libraries?
This article 讨论目标文件如何包含用于 link 时间优化的 LLVM IR。但是,如果 linker 正在编译一个包含静态库的项目,那么静态库是否也有这些信息呢?如果是,是在什么情况下?
是的。静态库也可以包含 llvm-IR-bitcode。
一个。使用 llvm-IR-bitcode
构建静态库的步骤
- 在 Xcode 静态库项目中:
Build Settings->Enable Bitcode
,切换到Yes
Product->Archive
乙。检查静态库是否包含 llvm-IR-bitcode。
otool -l libDemo.a
- 在输出中,搜索
__bitcode
并检查 size
是否大于 000001。
如果 size
> 000001 : 那么静态库包含 llvm-IR-bitcode
否则:静态库不包含 llvm-IR-bitcode。
希望这能回答您的问题。
This article 讨论目标文件如何包含用于 link 时间优化的 LLVM IR。但是,如果 linker 正在编译一个包含静态库的项目,那么静态库是否也有这些信息呢?如果是,是在什么情况下?
是的。静态库也可以包含 llvm-IR-bitcode。
一个。使用 llvm-IR-bitcode
构建静态库的步骤- 在 Xcode 静态库项目中:
Build Settings->Enable Bitcode
,切换到Yes
Product->Archive
乙。检查静态库是否包含 llvm-IR-bitcode。
otool -l libDemo.a
- 在输出中,搜索
__bitcode
并检查size
是否大于 000001。
如果size
> 000001 : 那么静态库包含 llvm-IR-bitcode
否则:静态库不包含 llvm-IR-bitcode。
希望这能回答您的问题。