#ios #linker #air #native
#iOS #компоновщик #air #родной
Вопрос:
Я работаю над приложением с собственным расширением AIR3 для iOS, которое использует Accelerate.framework
Выполнил первые шаги, упомянутые в руководствах, успешно создал файл .ane и т. Д.
Когда я запускаю команду окончательной упаковки (adt -package -target ipa-test …), я получаю следующие ошибки:
ld warning: unexpected srelocation type 9
ld warning: unexpected srelocation type 9
… (повторяется несколько раз)
Undefined symbols:
"_vDSP_vsdiv", referenced from: ...
"_vDSP_vsmul", referenced from: ...
… еще несколько подобных
ld: symbol(s) not found
Compilation failed while executing : ld64
Я думаю, это потому, что, когда я создавал файл .a в xcode, он не мог статически связать его с Accelerate.framework.
Полагаю, мне нужно сказать adt, чтобы он как-то связал его? Возможно, на этапе создания файла .ane? Или, может быть, мне следует изменить свой extension.xml файл?
Понятия не имею. Не удалось его найти…
Пожалуйста, посоветуйте.
ОБНОВЛЕНИЕ: это похоже на ошибку на стороне Adobe, особенно в Accelerate.framework. Я буду продолжать обновлять здесь на случай, если другие ребята наткнутся на это.
Ответ №1:
Убедитесь, что вы используете последнюю версию Flex 4.6 SDK. Если это не решит проблему, убедитесь, что вы правильно указали Apple iOS SDK на вкладке «Собственные расширения» вашего пакета сборки Apple iOS в настройках проекта. Это должно быть
/Разработчик/ Платформы/iPhoneOS.platform/Разработчик / SDKs/iPhoneOS5.0.sdk
если вы установили Xcode в папку по умолчанию
Ответ №2:
У меня была эта ошибка «srelocation», потому что включенные библиотеки (в моем случае AudioToolbox / OpenAL) рассматривались XCode как разделяемые библиотеки: они не были включены в мою сборку библиотеки (даже если она статична). Мне пришлось установить для параметра «Включить связывание с разделяемыми библиотеками» в настройках сборки значение «НЕТ», а затем ошибки исчезли. Возможно, это тоже решит вашу проблему…
Комментарии:
1. очень интересно … не знал об этой опции, и это кажется хорошим направлением… Однако, когда я устанавливаю для него значение NO, я получаю ошибку сборки:
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1
2. Хорошо, попробовал еще раз с LLVM 3.0, и это сработало, и действительно, оно устраняет предупреждения о перемещении, так что спасибо вам за это. Но это не решает мою первоначальную проблему…
3. Я пробовал это с AddressBook framework, но у меня это не работает. Вы, ребята, пробовали это с AddressBook framework. Большое спасибо.
4. @kblau: это не удалило мои 12000 предупреждений о перемещении с помощью GoogleAdMob, а также привело к сбою приложения в первой строке делегата приложения (теперь это iphone).