Хорошо, во-первых, я знаю, что это можно скомпилировать на iOS (armv7), потому что я прочитал документацию. Однако я не могу найти подходящий набор инструментов.
Итак, какие инструменты я уже пробовал:
i686-apple-darwin10-cpp-4.2.1
i686-apple-darwin10-g++-4.2.1
i686-apple-darwin10-gcc-4.2.1
Вышеупомянутый кросс-компилируется в x86 (я использую i386). Работает отлично. Но мне это не нужно
arm-apple-darwin10-cpp-4.2.1
arm-apple-darwin10-g++-4.2.1
arm-apple-darwin10-gcc-4.2.1
Вышеупомянутое прекрасно компилируется, но не выполняет кросс-компиляцию для arm, как я ожидал, вместо этого он просто компилируется в мою текущую арку.
Я настоящий новичок в этом вопросе, фактически это моя первая попытка кросс-компиляции чего-либо.
ОБНОВЛЕНИЕ:
Вот команды, которые я пробовал (это для armv6; armv7 похоже):
configure:
../llvm/configure --host=arm-apple-darwin6 --target=arm-apple-darwin6
--build=i386-apple-darwin --enable-optimized --disable-debug
--disable-expensive-checks --disable-doxygen --disable-threads
env vars:
export DEVROOT=/Developer/Platforms/iPhoneOS.platform/Developer
export SDKROOT=$DEVROOT/SDKs/iPhoneOS$IOS_BASE_SDK.sdk
export CFLAGS="-arch armv6 -pipe -no-cpp-precomp -isysroot $SDKROOT -miphoneos-version-min=$IOS_DEPLOY_TGT -I$SDKROOT/usr/include/"
export CPP="$DEVROOT/usr/bin/arm-apple-darwin10-cpp-4.2.1"
export CXX="$DEVROOT/usr/bin/arm-apple-darwin10-g++-4.2.1"
export CXXCPP="$DEVROOT/usr/bin/arm-apple-darwin10-cpp-4.2.1"
export CC="$DEVROOT/usr/bin/arm-apple-darwin10-gcc-4.2.1"
export LD=$DEVROOT/usr/bin/ld
export AR=$DEVROOT/usr/bin/ar
export AS=$DEVROOT/usr/bin/as
export NM=$DEVROOT/usr/bin/nm
export RANLIB=$DEVROOT/usr/bin/ranlib
export LDFLAGS="-L$SDKROOT/usr/lib/"
export CPPFLAGS=$CFLAGS
export CXXFLAGS=$CFLAGS
UPDATE: Цель этой кросс-компиляции заключается в том, чтобы сделать библиотеку armv7 (armv6) не инструментом командной строки.
ЕЩЕ ОДИН ОБНОВЛЕНИЕ: Я использовал следующее:
CC="$DEVROOT/usr/bin/clang"
CXX="$DEVROOT/usr/bin/clang++"
./llvm/configure --host=i386-apple-darwin --target=armv7-apple-darwin --build=armv7-apple-darwin --enable-optimized --disable-debug --disable-expensive-checks --disable-doxygen --disable-threads --enable-targets=arm
И мне удалось получить проверку, выполняем ли мы кросс-компиляцию ... да
из инструмента configure
. Однако make
по-прежнему выводит двоичный файл x86_64: (