К сожалению, после нескольких дней борьбы я все еще не могу обеспечить правильную кросс-компиляцию 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
Код: Выделить всё
./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
Код: Выделить всё
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