сбой libcurl в iOS 9 при компиляции с последней версией iOS sdk

#ios #c #curl #libcurl #ios10

#iOS #c #curl #libcurl #ios10

Вопрос:

В iOS 10 есть clock_gettime функция в системной библиотеке.

Когда я компилирую curl на последней версии iOS SDK, configure скрипт всегда определяет HAVE_CLOCK_GETTIME_MONOTONIC (но я определяю -miphoneos-version-min=8.0 !), Что приводит к сбою в предыдущих версиях iOS. Сбой выглядит как EXC_BREAKPOINT (EXC_ARM_BREAKPOINT) вкл dylib stub_binder . Сбой произошел при curlx_tvnow() вызове. С HAVE_CLOCK_GETTIME_MONOTONIC его вызовами clock_gettime это не существует в версии до iOS 10.

Есть ли какой-либо способ отключить HAVE_CLOCK_GETTIME_MONOTONIC , если -miphoneos-version-min меньше 10.0?

Комментарии:

1. На данный момент я просто удаляю некоторые строки из configure , чтобы отключить HAVE_CLOCK_GETTIME_MONOTONIC тест.

2. да, xcode8 / macos 10.12 сломал вещи… для этого необходимо настроить сценарий настройки curl, но он еще не исправлен. См . curl.haxx.se/mail/lib-2016-09/0043.html для получения более подробной информации

3. -Werror=partial-availability CFLAGS кажется, что это лучшее решение, чем редактирование вручную configure (из curl.haxx.se/mail/lib-2016-09/0051.html )

4. Для пользователей POCO: pocoproject.org/forum /…

Ответ №1:

я скомпилировал CURL (https://curl.haxx.se/download.html ) с добавлением CFLAGS= CFLAGS «-miphoneos-version-min=8.0 -Ошибка = частичная доступность» и для меня все работает нормально.