Кросс-компиляция libcurl для запуска на симуляторе iOSIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Кросс-компиляция libcurl для запуска на симуляторе iOS

Сообщение Anonymous »

Мне нужно перекрестно скомпилировать libcurl, чтобы я мог использовать его API из приложения iOS, работающего в симуляторе Xcode iOS. У меня есть простое приложение на Swift, которое вызывает функцию драйвера C, которая затем содержит несколько вызовов в libcurl. У меня уже настроены соответствующие заголовки моста, поэтому совместимость C работает, мне просто нужно сейчас связать с libcurl.
К сожалению, после нескольких дней борьбы я все еще не могу обеспечить правильную кросс-компиляцию libcurl, чтобы мое приложение могло ссылаться на нее.
Примечание. Я компилирую на Macbook pro (m1 pro Apple Silicon) с MacOS Ventura. 13.4

Код: Выделить всё

Darwin XXX-MacBook-Pro.local 22.5.0 Darwin Kernel Version 22.5.0: Mon Apr 24 20:52:24 PDT 2023; root:xnu-8796.121.2~5/RELEASE_ARM64_T6000 arm64
Я настраиваю Curl с помощью этого вызова ./configure:

Код: Выделить всё

./configure --prefix /path/to/install \
--enable-static --disable-shared \
--with-secure-transport
--host=arm64-apple-darwin \
CFLAGS="-arch arm64 -target arm64-apple-ios-simulator -isysroot $(xcrun -sdk iphonesimulator --show-sdk-path) -miphonesimulator-version-min=16.4"

make -j
make install
Все настраивается и собирается нормально, но когда я перетаскиваю созданную статическую библиотеку в проект xcode моего приложения (который, как я подтвердил, добавляет libcurl.a в качестве связанной библиотеки), я получаю следующая ошибка сборки в xcode:

Код: Выделить всё

In /Path/to/libcurl.a(libcurl_la-altsvc.o), building for iOS Simulator, but linking in object file built for macOS, file '/Path/to/libcurl.a' for architecture arm64

Мои вопросы:
  • Почему xcode считает, что этот объектный файл создан для macOS? Параметры кросс-компиляции, передаваемые в ./configure через CFLAGS, должны означать, что он кросс-компилируется для запуска на симуляторе iOS.
  • Каковы минимальные параметры компиляции (передается непосредственно в clang/gcc), требуется кросс-компиляция чего-либо, чтобы его можно было вставить в xcode и запустить на симуляторе iOS?
  • Какой вариант подходит вызов ./configure Curl, чтобы я мог создать статическую библиотеку для libcurl и импортировать ее в свой проект xcode?


Подробнее здесь: https://stackoverflow.com/questions/766 ... -simulator
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»