Выпуск создания iOS "Жировая библиотека".

У меня есть скрипт bash, который создает статическую библиотеку iOS для архитектур ARM и i386. Затем я использую lipo, чтобы объединить двоичные файлы в одну "объединенную" библиотеку, чтобы ее можно было связать как в симуляторе, так и на устройстве. По какой-то причине, когда я пытаюсь соединиться с полученной толстой библиотекой, я все еще получаю ошибки компоновщика, жалующиеся, что символы не найдены для i386 при отладке. Мне интересно, правильно ли я собираю симулятор или библиотеки iphoneos перед использованием lipo. Кто-нибудь может мне помочь?

Вот мой скрипт bash:

    if [ $1 == "clean" ]
then
    echo -e "Perform Clean\n"
    if [ -d build ]
    then
        rm -r build
        exit 
    fi      
else
    echo -e "Begin combined build process.\n"
    XCODEBUILD_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin
    XCODEBUILD=$XCODEBUILD_PATH/xcodebuild
    echo -e "xcode build executable path: $XCODEBUILD\nBuiding i386 static library.\n"
    $XCODEBUILD -project MyLibrary.xcodeproj -target "MyLibrary" -sdk "iphonesimulator" -configuration "Release" clean build
    echo -e "Buiding ARM static library.\n"
    $XCODEBUILD -project MyLibrary.xcodeproj -target "MyLibrary" -sdk "iphoneos" -configuration "Release" clean build
    echo -e "Combine ARM and i386 libs.\nOutput: build/combined/libMyLibrary.a\n"
    [ -d build/Release-combined ] || mkdir build/Release-combined 
    lipo -create -output "build/Release-combined/libMyLibrary.a" "build/Release-iphoneos/libMyLibrary.a" "build/Release-iphonesimulator/libMyLibrary.a"
    echo -e "Done!\n"
fi
exit

Когда я добавляю ссылку на получившуюся библиотеку "build/Release-комбинированный /libMyLibrary.a". Я получаю ссылки на вопросы. Я делаю что-то неправильно?

Спасибо!

1 ответ

Решение

Ну, есть 2 способа заставить gcc/clang создать другую арку.

Вы можете передать -m32 или же -m64 флаг...

но более явно использовать -arch x86_64 -arch i386 флаги, которые в apple clang и apple gcc могут передаваться одновременно.

Другие вопросы по тегам