Работает ли монолитная оптимизация времени компоновки со статическими библиотеками?
В этой статье обсуждается, как объектные файлы могут содержать LLVM IR, который используется для оптимизации времени компоновки. Но что, если компоновщик компилирует проект, который включает статическую библиотеку, статические библиотеки также имеют информацию? Если да, то при каких обстоятельствах?
1 ответ
Да. Статические библиотеки также могут содержать llvm-IR-bitcode.
A. Шаг для сборки статических библиотек с помощью llvm-IR-bitcode
- В проекте статической библиотеки Xcode:
Build Settings->Enable Bitcode
, Переключиться наYes
Product->Archive
B. Проверьте, содержит ли статическая библиотека llvm-IR-bitcode или нет.
otool -l libDemo.a
- В выводе найдите
__bitcode
и проверьте, есть лиsize
больше 000001 или нет.
еслиsize
> 000001: тогда статическая библиотека содержит llvm-IR-bitcode
else: статическая библиотека не содержит llvm-IR-bitcode.
Желаю ответить на ваш вопрос.