Как мне скомпилировать libffi для iOS и macOS?
Я пытаюсь использовать libffi в одном из моих проектов, но я не могу скомпилировать для iOS (или MacOS, если на то пошло). Вот одна из различных ошибок, с которыми я столкнулся при сборке для симулятора iOS:
bash: src/arm/gentramp.sh: No such file or directory
Обновление 1: поскольку вопрос остается без ответа, я решил открыть вопрос также и в официальном репозитории.
Обновление 2: на вопрос был дан ответ, и проблема была закрыта!
4 ответа
generate-darwin-source-and-headers.py и libffi.xcodeproj должны быть обновлены, чтобы включить все актуальные на данный момент исходные файлы.
Сценарий gentramp.sh больше не нужен, и текущий вышестоящий xcodeproj также не обновлен с настройками компиляции и должен быть включен в исходные файлы для 64-битной ОС iOS. Исправленную вилку можно найти по адресу https://github.com/ksjogo/libffi
Если вы проверите репозиторий, то увидите, что требуемый файл был удален в этом коммите. Вы можете найти последнюю версию этого файла здесь.
sh autogen.sh
python generate-darwin-source-and-headers.py --only-ios
открыто
libffi.xcodeproj
выбрать схему
libffi-iOS
и устройствоGeneric iOS Device
нажмите "Продукт - Сборка"
В случае успеха вы увидите «Product / libffi.a» на боковой панели, вы можете щелкнуть его правой кнопкой мыши, чтобы получить библиотеку в поисковике.
Пожалуйста, убедитесь, что вы следуете инструкциям по установке libffi, выпущенным для проекта TBD или git: https://github.com/libffi/libffi
Вот некоторые из основных особенностей:
Сначала вы должны настроить дистрибутив для вашей конкретной системы. Перейдите в каталог, в который вы хотите собрать libffi, и запустите программу "configure", находящуюся в корневом каталоге дистрибутива libffi.
Если вы собираете libffi напрямую из системы контроля версий, configure еще не существует; бежать ./autogen.sh
первый.
Вы можете указать configure где установить библиотеку libffi и заголовочные файлы. Для этого используйте --prefix
настроить коммутатор. Libffi будет установлен под /usr/local
по умолчанию.
Если вы хотите включить дополнительные проверки отладки во время выполнения, используйте --enable-debug
настроить коммутатор. Это полезно, когда ваша программа загадочно умирает при использовании libffi.
Еще один полезный переключатель конфигурации --enable-purify-safety
, Использование этого добавит некоторый дополнительный код, который будет подавлять определенные предупреждения, когда вы используете Purify с libffi. Используйте этот переключатель только при использовании Purify, так как это замедлит работу библиотеки.
Для iOS-сборок libffi.xcodeproj
Проект XCode доступен.
У настройки есть много других опций. Используйте " configure --help
чтобы увидеть их всех.
После завершения настройки введите make
Msgstr " Обратите внимание, что вы должны использовать GNU make. Вы можете использовать ftp GNU make из ftp.gnu.org:/pub/gnu/make
,
Чтобы убедиться, что libffi работает как рекламируется, введите " make check
". Это потребует от вас DejaGNU
установлены.
Чтобы установить библиотеку и заголовочные файлы, введите " make install
".
Или попробуйте объединить один из следующих git-проектов с вашим проектом, чтобы включить отсутствующие файлы. Пожалуйста, убедитесь, что файлы не устарели перед слиянием.
1 https://github.com/pandamonia/libffi-iOS