Как мне скомпилировать 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

Если вы проверите репозиторий, то увидите, что требуемый файл был удален в этом коммите. Вы можете найти последнюю версию этого файла здесь.

  1. sh autogen.sh

  2. python generate-darwin-source-and-headers.py --only-ios

  3. открыто libffi.xcodeproj

  4. выбрать схему libffi-iOS и устройство Generic iOS Device

  5. нажмите "Продукт - Сборка"

    В случае успеха вы увидите «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

2 https://github.com/influitive/libffi-iOS

3 https://github.com/landonf/libffi-ios

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