Ошибка при компиляции проекта Xcode (IPhone) - PullRequest
5 голосов
/ 04 марта 2010

Я добавил порт ffmpeg iphone в свою библиотеку и могу использовать некоторые из его функций, таких как avcodec_init (), .. без каких-либо ошибок. Но когда я включаю этот вызов функции "avcodec_register_all" Xcode выдает ошибку после компиляции

Сообщение об ошибке:

* --------------- ld: ldr 12-разрядное смещение вне диапазона (4276 макс. +/- 4096) в заглушке _CFRelease $ в заглушке _CFRelease $ из /Users/foxit/Documents/CameraTest/build/CameraTest.build/Debug-iphoneos/CameraTest.build/ Объекты-нормальный / ARMv6 / CameraTest

Сбой команды /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 с кодом выхода 1

* -------------

Кто-нибудь знает, что с этим не так?

С уважением,

Raghu

Ответы [ 6 ]

3 голосов
/ 05 марта 2010

Эта проблема существует в iPhone OS 3.1 или позже при сборке в Xcode. Попробуйте изменить порядок следования библиотек на этапе создания библиотеки ссылок вашей целевой системы. Я обсуждал этот вопрос в: http://www.galloway.me.uk/2009/12/ldr-12-bit-displacement-out-of-range/

Существует внутренняя проблема в iPhone SDK 3.1 и более поздних версиях. Придется подождать, пока Apple исправит это, или нам придется внести некоторые изменения и ошибки.

В нашем случае просто переупорядочив libavfilter и libavcodec до последнего будет просто работать.

2 голосов
/ 27 июня 2010

Мне удалось избавиться от ошибки, отменив выбор параметра компиляции «Compile For Thumb».

Итак, вот мои настройки:

Base SDK:  iPhone Device 4.0 
iPhone OS Deployment Target: 3.1.3

Я добавил -no_order_inits к параметрам компоновщика, но у меня это не сработало.

Если вы выберете цель развертывания 3.0, вы также не получите ошибку.

Кстати, я также использую библиотеки FFMPEG и libMMS.

1 голос
/ 30 ноября 2010

Для меня на 4.2 и использовании ffmpeg, решение было указать «Оптимизированный (armv7)» в поле «Архитектура» вместо «Стандарт (armv6 armv7)» если это поможет вам ...

1 голос
/ 04 марта 2010

То же, что и это проблема?

Есть предложение:

Пожалуйста, выберите цель развертывания "iPhone OS 3.0" или более раннюю версию. Это известная проблема компоновщика Xcode с целями развертывания "iPhone OS 3.1" и более поздними версиями.

0 голосов
/ 30 сентября 2010

У меня была эта проблема в MonoTouch, и выложил решение для нее здесь: http://microsoft2apple.com/2010/09/30/solved-ldr-12-bit-displacement-out-of-range/

0 голосов
/ 08 мая 2010

Поскольку я использую проект XCode, сгенерированный CMake, я не обладаю всей необходимой гибкостью при переупорядочении линий ссылок. Некоторое время я смотрел на справочную страницу ld (1) и обнаружил:

-no_order_inits

"Когда опция -order_file не установлена используется компоновщик функций в порядок объектного файла, и он перемещает все инициализатор подпрограмм к началу раздел __text и терминатор процедуры до конца. Используйте эту опцию отключить автоматический перестановка инициализаторов и Терминаторы ".

Добавление этого к строке ссылки убрало ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...