Я пытаюсь кросс-компилировать Янссон для iOS (armv7) с моей машины (x86_64). Я узнал, что в xcode 5 Apple удалила llvm-gcc и, таким образом, armv7-apple-darwin-gcc
не может быть найден Вместо этого библиотека результата компилируется для x86_64.
Это моя текущая конфигурация:
./configure --prefix=/resultdir --host=armv7-apple-darwin --target=armv7-apple-darwin
Я видел множество постов людей, в которых говорилось, что они скомпилировали Янссона для архитектуры рук, поэтому я знаю, что это возможно. Просто не могу быть в состоянии сделать это.
Есть идеи, как это сделать?
В моей системе установлен более старый iPhoneOS 5.0 SDK. Я уверен, что вы можете работать с более новой версией тоже. Следующий скрипт успешно скомпилировал для меня Янссона:
export CC="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang"export CPP="clang -E"
export SDKPATH="/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk"export CFLAGS="-arch armv7 -isysroot ${SDKPATH} -miphoneos-version-min=5.0"
export LDFLAGS="-isysroot ${SDKPATH}"
./configure --host=arm-apple-darwin10
make
В результате получается библиотека, которую я не тестировал, но file
возвращает библиотеку архитектуры arm:
$ file src/.libs/libjansson.4.dylib
src/.libs/libjansson.4.dylib: Mach-O dynamically linked shared library arm
регулировать SDKPATH
а также -miphoneos-version-min=5.0
соответственно для SDK, который вы установили.