Я использую Xcode для предварительной компоновки набора объектных файлов (*.o
) и статических библиотек (*.a
), содержащих битовый код, в единую статическую библиотеку с использованием предварительной компоновки отдельных объектов.
При этом полученный предварительно связанный файл не содержит битового кода.
Команда и параметры предварительной компоновки, выдаваемые Xcode, выглядят следующим образом:
ld -r -arch arm64 -bitcode_bundle -bitcode_verify -syslibroot
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.6.sdk
a.o
b.o
...
x.a
y.a
-o libABC-arm64-master.o
В документации для параметра bitcode_bundle
указано, что он требует, чтобы все объектные файлы, статические библиотеки и пользовательские фреймворки/dylib содержали битовый код. Я использовал otool
, чтобы убедиться, что все составляющие файлы содержат битовый код.
Никакие ошибки не возникают и не регистрируются командой ld
, даже когда я тестирую ее непосредственно из командной строки, отдельно от Xcode.
Я в тупике. И любая помощь или предложения будут оценены.
Обновление. В ходе дальнейшего тестирования я могу создать предварительно связанный файл, содержащий только один файл .o
, и окончательный предварительно связанный файл БУДЕТ содержать битовый код. Однако включение любых двух из этих .o
файлов, каждый из которых содержит битовый код, приводит к тому, что предварительно связанный файл НЕ содержит битового кода.