Как скомпилировать fftw3 на iOS
Сейчас я просто хочу использовать FFTW3 на iOS, так как я успешно скомпилировал его в версию i386, которая используется симулятором iOS, остальное - скомпилировать его в версию armv6(или v7) и объединить эти две версии вместе, ниже моя неверная конфигурация:
./configure CC = / Разработчик / Платформы / iPhoneOS.platform/ Разработчик /usr/bin/arm-apple-darwin10-gcc-4.2.1 LD=/ Разработчик / Платформы / iPhoneOS.platform/ Разработчик /usr/bin/ld CCFLAGS="- Я /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/usr/lib/gcc/arm-apple-darwin10/4.2.1/include/ -I /Developer/Platforms/iPhoneOS. платформа / Разработчик /SDKs/iPhoneOS4.2.sdk/usr/include/ -miphoneos-version-min=2.2 -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk" LDFLAGS="-arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk" --enable-float --host=arm-apple-darwin --build=arm-apple-darwin10 - Disable-Фортран
когда я использую это для сборки fftw3, я всегда получаю это:
проверка BSD-совместимой установки... / usr / bin / install -c проверка правильности среды сборки... да проверка на arm-apple-darwin-strip... нет проверки на strip... strip
configure: ВНИМАНИЕ: использование перекрестных инструментов без префикса с проверкой триплетов хоста для многопоточного mkdir -p..../install-sh -c -d проверка gawk... без проверки mawk... без проверки nawk..... нет проверки на awk... awk проверяет, устанавливает ли make наборы $(MAKE)... да проверяет, нужно ли включать специфичные для сопровождающего части Makefiles... нет проверяет тип системы сборки... arm-apple-darwin10 проверяет хост-систему тип... arm-apple-darwin проверка на arm-apple-darwin-gcc... /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-gcc-4.2.1 проверка, является ли Компилятор C работает... нет конфигурации: ошибка: в /Users/chencyz/Desktop/Development/Misc/fftw3/fftw-3.3':
configure: error: C compiler cannot create executables
See
config.log'для более подробной информации
Я не очень ясно понимаю проблему (компилятор C не работает?), Кто-нибудь может дать мне несколько руководств, большое спасибо!
2 ответа
Согласно./configure --help:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
Поэтому ключ должен передать --host=arm-apple-darwin10 и выполнить configure с правильными изменениями в PATH, CFLAGS, LDFLAGS и т. Д.
Это похоже на работу:
PATH=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:$PATH \
../configure --host=arm-apple-darwin10 CFLAGS="-I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/include -I/Library/iPhone/include -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk" \
CC=arm-apple-darwin10-gcc-4.2.1 \
CPP=cpp \
LDFLAGS="-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk" \
--enable-single
Удачи.
У меня была похожая проблема при попытке получить симпатичную компиляцию для iOS. Глядя на скрипт configure, он, похоже, не использовал $LDFLAGS
переменная, но если это так, я думаю, вы могли бы добавить следующее к configure
линия:
./configure CC=... CFLAGS="-arch armv7 -isysroot $SDKROOT" CXXFLAGS="$CFLAGS" LDFLAGS="$CFLAGS -Wl,-syslibroot $SDKROOT"
куда $SDKROOT
является /Developer/Platforms/iPhone.platform/Developer/SDKs/iPhone5.0.sdk
по умолчанию (с iOS 5.0 SDK).
Я никогда не получал симпатичную компиляцию, так как не мог понять, как исправить вызов C-компилятора, однако, ваш пробег может отличаться.