Компиляция GMP для ios 7 armv7s

Я пытаюсь скомпилировать gmp 6.0.0 для симулятора armv7s и iphone (i386) на своем Macbook, но я просто не могу заставить его работать. я прочитал некоторые связанные вопросы (Build GMP для iOS, Создание библиотеки C (GMP) для arm64 iOS) и настроил ее с помощью:

./configure \
CC="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Wno-error -Wno-implicit-function-declaration" \
CPP="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -E" \
CPPFLAGS="-arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/ -miphoneos-version-min=7.0" \
--host=arm-apple-darwin --disable-assembly

Настройка работает нормально, но когда я запускаю make, происходит сбой:

clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
div_qr_1n_pi1.c:218:3: error: expected ')'
  add_mssaaaa (u2, u1, u0, u0, up[n-2], p1, p0);
  ^
div_qr_1n_pi1.c:140:49: note: expanded from macro 'add_mssaaaa'
           : "r" (ah), "rI" (bh), "%r" (al), "rI" (bl) __CLOBBER_CC)
                                                       ^
div_qr_1n_pi1.c:218:3: note: to match this '('
div_qr_1n_pi1.c:135:11: note: expanded from macro 'add_mssaaaa'
  __asm__ (  "adds      %2, %5, %6\n\t"                                 \
          ^
div_qr_1n_pi1.c:256:7: error: expected ')'
      add_mssaaaa (u2, u1, u0, u0, up[j], p1, p0);
      ^
div_qr_1n_pi1.c:140:49: note: expanded from macro 'add_mssaaaa'
           : "r" (ah), "rI" (bh), "%r" (al), "rI" (bl) __CLOBBER_CC)
                                                       ^
div_qr_1n_pi1.c:256:7: note: to match this '('
div_qr_1n_pi1.c:135:11: note: expanded from macro 'add_mssaaaa'
  __asm__ (  "adds      %2, %5, %6\n\t"                                 \
          ^
2 errors generated.
make[2]: *** [div_qr_1n_pi1.lo] Error 1
make[1]: *** [all-recursive] Error 1

Я не знаю, что делать дальше, было бы здорово, если бы кто-нибудь подсказал мне, что делать дальше.

ИЗМЕНИТЬ 1:

я загрузил последний снимок, добавил -no-integrated-as в cppflags и изменил clang++ на clang. configure все еще работает нормально, как только я делаю, я получаю сообщение об ошибке:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang `test -f 'gen-fac.c' || echo './'`gen-fac.c -o gen-fac
gen-fac.c:31:10: fatal error: 'stdio.h' file not found
#include <stdio.h>

С уважением


person user2464571    schedule 25.04.2014    source источник
comment
См.: Компиляция x264 для iOS с флагом -no-integrated-as. Хотя ваши сообщения об ошибках выглядят как проблема с пространством имен C++. Вероятно, было бы полезно показать определение макроса add_mssaaaa.   -  person artless noise    schedule 25.04.2014
comment
Почему вы используете компилятор C++ для кода C?   -  person unixsmurf    schedule 25.04.2014
comment
Первое, что нужно попробовать, заменив clang++ только на clang, — получить последний снимок с: gmplib.org/download /snapshot на случай, если какие-то изменения уже были внесены.   -  person Marc Glisse    schedule 25.04.2014


Ответы (1)


Наконец-то я заработал. я переустановил инструменты командной строки xcode и настроил их следующим образом:

./configure \
CC="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" \
CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/ -Wno-error -Wno-implicit-function-declaration -miphoneos-version-min=7.0  -no-integrated-as -arch armv7s \
--host=arm-apple-darwin --disable-assembly --enable-static --disable-shared"

то же самое для симулятора (i386) и использовал lipo для их объединения.

Здесь есть 3 заполнителя:

  • iPhoneOS7.1.sdk который может быть любым вашим текущим SDK.
  • 7.0 Минимальная версия ОС, для которой вы пытаетесь скомпилировать библиотеку.
  • armv7s, который также может быть armv7, arm64, i386.
person user2464571    schedule 26.04.2014
comment
Что-то не так с этой строкой. При вставке копии он передает --host=arm-apple-darwin и т. д. в clang (который задыхается от них), а не в файл configure. Я получаю configure: error: could not find a working compiler, see config.log for details, которые являются ошибками, такими как clang: error: unsupported option '--host=arm-apple-darwin' - person Teo Sartori; 14.11.2015
comment
Перемещение команд настройки на передний план, кажется, передает их правильно, за исключением ошибок в чем-то другом. Из config.log: Unknown pseudo-op: .ios_version_min - person Teo Sartori; 14.11.2015