Компиляция библиотеки C для iOS 9 из командной строки, Xcode 7-beta 2

У меня проблемы с компиляцией библиотеки C (gmp) для iOS 9 с использованием новейшего бета-кода Xcode 7-beta. Я пытаюсь создать битовый код, чтобы остановить все предупреждения в Xcode (и я хотел бы создать эти библиотеки в битовом коде). Однако я даже не могу скомпилировать библиотеку. ./configure терпит неудачу, и после просмотра config.log кажется, что ld является проблемой, так как он терпит неудачу с "ld: library not found for -lSystem". Вот команда, которую я использовал для компиляции gmp в прошлом:

./configure CC=clang CPP="/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xct‌​oolchain/usr/bin/clang -E" CPPFLAGS="-isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Deve‌​loper/SDKs/iPhoneOS.sdk/ -L /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Deve‌​loper/SDKs/iPhoneOS.sdk/usr/lib/ -miphoneos-version-min=7.0 -arch armv7 -target arm-apple-darwin

-L /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Deve‌​loper/SDKs/iPhoneOS.sdk/usr/lib/

Флаг, который я добавил, должен посмотреть, поможет ли ld найти нужные библиотеки для связи, но он не с той же ошибкой, независимо от того, включаю я эту опцию или нет. Я не включил опцию для компиляции в битовый код в вышеупомянутой команде, так как я даже не могу заставить ее скомпилироваться в первую очередь, используя ту же команду, которую я использовал. Я заметил, что когда я добавляю файлы gmp.a в xcode в разделе "связать двоичные файлы с библиотеками", то ld не может найти библиотеки. Я должен вручную добавить проект в путь поиска ld в настройках проекта для ld, чтобы найти библиотеки. Это не было необходимо в Xcode 6, так что это просто ошибка в текущей бета-версии, или я могу что-нибудь сделать?

1 ответ

Решение

Хорошо, вот что сработало. Настройте свою разработку xcode на использование новых компиляторов, используя

sudo xcode-select -s /Applications/Xcode-beta.app

Затем я использовал эту конфигурацию:

./configure CC=clang CPP="/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -E" CPPFLAGS="-isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/ -fembed-bitcode -miphoneos-version-min=7.0 -arch armv7 -target arm-apple-darwin" --host=aarch64-apple-darwin --disable-assembly --enable-static --disable-shared --disable-thread-safe --enable-cxx

Вышеописанное работает и при компиляции mpfr и mpc.

Другие вопросы по тегам