Компиляция LuaJIT для симулятора iOS

Кто-нибудь знает правильные флаги, которые нужно передать для кросс-компиляции LuaJIT для симулятора iOS? Мне удалось запустить его на устройстве, но у меня возникли проблемы с созданием симулятора, я не могу найти рабочий пример в Интернете.

Спасибо!!

Внутри проверки LuaJIT (я использую ветку v2.1):

IXCODE=`xcode-select -p`
ISDK=$IXCODE/Platforms/iPhoneSimulator.platform/Developer
ISDKVER=iPhoneSimulator8.1.sdk
ISDKP=/usr/bin/
ISDKF="-arch i386 -isysroot $ISDK/SDKs/$ISDKVER"

make clean
make HOST_CFLAGS="-arch i386" HOST_LDFLAGS="-arch i386" TARGET=x86 CROSS=$ISDKP TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS

Это сообщение об ошибке, которое я получаю:

ld: сборка для MacOSX, но связывание с dylib, созданным для файла iOS Simulator '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.1.sdk/usr/lib/libSystem.dylib ' для архитектуры i386

Сборка для armv7 работает:

IXCODE=`xcode-select -p`
ISDK=$IXCODE/Platforms/iPhoneOS.platform/Developer
ISDKVER=iPhoneOS8.1.sdk
ISDKP=/usr/bin/
ISDKF="-arch armv7 -isysroot $ISDK/SDKs/$ISDKVER"

make clean
make HOST_CC="gcc -m32 -arch i386" CROSS=$ISDKP TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS

person naartjie    schedule 24.12.2014    source источник
comment
Запустите его в отладчике и посмотрите, на какой строке он не работает? Также вам может понадобиться заключить TARGET_FLAGS в кавычки.   -  person Colonel Thirty Two    schedule 24.12.2014
comment
Возвращаемый L равен NULL. Я не знаю, актуально ли это, но в руководстве по установке LuaJIT говорится, что цель OSX-64 должна быть связана с -pagezero_size 10000 -image_base 100000000. Если вы получаете эту ошибку от симулятора iPhone, это может быть так.   -  person user3125367    schedule 25.12.2014
comment
@user3125367 user3125367 L действительно NULL, спасибо!! Оказывается, проблема только в архитектуре симулятора, он работает на телефоне, поэтому я собираюсь отредактировать свой пост, чтобы отразить это.   -  person naartjie    schedule 26.12.2014


Ответы (1)


добавьте -mios-simulator-version-min=8.1 в TARGET_FLAGS

ISDKF="-arch i386 -isysroot $ISDK/SDKs/$ISDKVER"

должно быть

ISDKF="-arch i386 -mios-simulator-version-min=8.1 -isysroot $ISDK/SDKs/$ISDKVER"

вам также может потребоваться установить

BUILDMODE="static"

и вам может потребоваться установить ios-simulator-version-min, чтобы он соответствовал версии SDK симулятора. 8.2 для Xcode 6.2.

person BlackCloak    schedule 03.04.2015
comment
Извините, что я не проголосовал за это и не дал никакого отзыва, но поскольку этот вопрос был задан, мне пришлось перейти к другим вещам, и этот проект как бы остался на обочине. Спасибо за ответ - однажды я все равно хотел бы попробовать это - это любимый проект. - person naartjie; 30.10.2015