首页 > 解决方案 > 单片链接时优化是否适用于静态库?

问题描述

本文讨论目标文件如何包含用于链接时优化的 LLVM IR。但是如果链接器正在编译一个包含静态库的项目,静态库是否也有这些信息?如果有,在什么情况下?

标签: llvmlink-time-optimization

解决方案


是的。静态库也可以包含 llvm-IR-bitcode。

A. 使用 llvm-IR-bitcode 构建静态库的步骤

  1. 在 Xcode Static Lib Project:
    Build Settings->Enable Bitcode 中,切换到Yes
  2. Product->Archive

B. 检查静态库是否包含 llvm-IR-bitcode。

  1. otool -l libDemo.a
  2. 在输出中,搜索__bitcode并检查 是否size大于 000001。
    如果size> 000001:则静态库包含 llvm-IR-bitcode
    否则:静态库不包含 llvm-IR-bitcode。

希望这能回答你的问题。


推荐阅读