Я хочу скомпилировать XZ Utils как статическая библиотека (.a), предназначенная для стандартных архитектур iOS (armv7 / armv7s / arm64). Я буду использовать библиотеку в нашем приложении для iPhone, чтобы распаковать файлы XZ.
Следующие мои попытки пока:
Я нашел так пост о том же вопросе:
Компиляция XZ Utils для iOS,
но используя код хоста, исправление ответа и изменение некоторых переменных для моей среды:
CC="clang -arch arm64 \
-isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk"./configure --disable-dependency-tracking \
--host=arm-apple-darwin15.0.0 --build=x86_64-apple-darwin15.3.0
Я получаю следующую ошибку в config.log:
ld: динамические главные исполняемые файлы должны связываться с libSystem.dylib для архитектуры arm64
clang: error: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)
С указанием armv7 / armv7s я получаю следующую ошибку:
ld: библиотека не найдена для -lcrt1.3.1.o
Кажется, эта ошибка вызвана использованием старой версии XCode, но я явно указываю последний SDK — поэтому я не уверен, почему это так.
Я также нашел другой подход из руководства библиотеки, которое гласит:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
Я изменил целевые архитектуры, чтобы они соответствовали моим потребностям:
./configure CC="gcc -arch armv7 -arch armv7s -arch arm64" \
CXX="g++c -arch armv7 -arch armv7s -arch arm64" \
CPP="gcc -E" CXXCPP="g++ -E"
Но я получаю точно такие же ошибки, как и при предыдущем подходе.
Что мне не хватает?
Буду признателен за любой вклад. Спасибо!
Задача ещё не решена.
Других решений пока нет …