1

Я собираюсь через некоторые вопросы, в последнее время при реализации звуковой библиотеки обработки от:Добавить ноны библиотеки дуги в разблокированном проекте дуги IOS

http://www.izotope.com/tech/izomobile/djfx.asp

Проблемы, которую я считаю с моей реализацией, которая включена ARC и библиотекой является non arc C++. Я попытался добавить -fno-objc-arc для файлов, использующих эту библиотеку, а также попытался изменить расширения viewcontrollers на .mm вместо .m. Пожалуйста, взгляните на прикрепленные изображения и сообщите мне, если кто-то еще столкнулся с этой проблемой.

Спасибо.

enter image description here

enter image description here

EDIT

Вы можете скачать образец проекта ссылку из: https://www.dropbox.com/s/ljvnevkwkyplp2k/SoundEffects_ARC.zip

ответ

3

Похоже, ваш код должен быть связан со стандартной библиотекой C++. Изменение этих параметров целевой сборки в проекте и проверить, работает ли он,

Apple LLVM compiler language-> C++ language dialect-> Compiler default 
Apple LLVM compiler language-> C++ standard library-> Compiler default 

enter image description here

Кроме того, предупреждение сверху указывает на то, что библиотека libFunFX.a не построена для i386 то есть iPhone симулятор. Чтобы убедиться, что вы можете попробовать.

Открыть терминал, Гото папку, содержащую библиотеку и использовать эту команду

lipo -info libFunFX.a ↵ 
//Output: 
Architectures in the fat file: libFunFX.a are: armv7 i386 

Если он не перечисляет i386, то не стоит беспокоиться, иначе вы должны сообщить владельцу, чтобы отправить вам файл FAT, содержащий кусочки для как устройство (armv7/armv7s), так и симулятор (i386).


EDIT

Я вижу две библиотеки в вашем проекте, объединить и создать единый файл FAT с помощью следующей команды.

lipo -create libFunFX.a libFunFXSim.a -output libFunFX_Univ.a 

Так что теперь, если вы проверяете,

lipo -info libFunFX_Univ.a 
//Output 
Architectures in the fat file: libFunFX_Univ.a are: armv7 (cputype (12) cpusubtype (11)) i386 

Изменения в файлах проекта

  • Изменить AppDelegate.m для AppDelegate.mm
  • Изменение ViewController.m в ViewController.mm
  • Добавить и привяжите выше создано libFunFX_Univ.a файл вместо двух отдельных файлов .a.
  • Отметьте файлы -fno-objc-arc ниже изображения

enter image description here

внесение этих изменений я был в состоянии построить свой проект успешно для симулятора. Я не уверен, действительно ли вы хотите использовать ARC, потому что большая часть файлов отмечена для ручного управления памятью. В этом случае было бы проще просто ручное управление памятью для всего проекта. Просто предложение!

Надеюсь, что это поможет!

+0

Спасибо за ваш ответ. Вот что я получил в терминале: << accounts002: SoundEffects_ARC Awais $ липо -info libFunFX.a Архитектуры в файле жира: libFunFX.a являются: ARMv7 (CPUTYPE (12) cpusubtype (11)) >> Я не понял. Kinda newbee –

+0

@AwaisTariq Хорошо, '(cputype (12) cpusubtype (11))' is armv7s. Таким образом, ваша библиотека не содержит срез для i386. Поэтому вам нужно попросить владельца библиотеки отправить файл FAT, содержащий i386. Тем временем вы можете попытаться создать этот код для устройства. – Amar

+0

Спасибо, я попробую^_^ –

3

Я просто положить основной шаг здесь, следовать или сравнить с шагом которое уже сделано вами.

Select Project Form Project Manager 
     | 
     | 
     Targets 
      | 
      | 
     Build Phases 
       | 
       | 
      Compile Sources 
        | 
        | 
       Select File that you Want to crate as ARC. (You can also Select Multiple File name from here) 
          | 
          | 
         Press "ENTER" key 
           | 
           | 
          Popup Box/Window is displayed 
            | 
            | 
           Write here - '-fno-objc-arc' 
             | 
             | 
            And again Press 'ENTER' key. 


Your selected file is being ARC. 
+0

Проект включен ARC Я хочу добавить нон библиотеки дуги. Также я пробовал этот процесс. : S –

+0

Вместо того, чтобы использовать '-fno-objc-arc', не лучше ли просто отключить настройку * Automatic Reference Counting *? – trojanfoe

1

Эти ошибки компоновщика не имеют ничего общего с ARC, это просто, что библиотека времени выполнения C++ не была настроена.

Теперь у вас есть два варианта; старый libstdc++ или новый libc++, и я не могу сказать, из сообщений об ошибках, которые Вы должны использовать, так что вам придется поэкспериментировать:

enter image description here

Также он выглядит .../SoundsEffects_ARC.a не был скомпилирован для iPhone Simulator (недостающая архитектура i386 - это ключ). Самый простой способ решить это, если у вас есть источник, - создать рабочую область Xcode и включить этот проект в рабочую область и настроенные зависимости, а затем Xcode построит его для iPhone Simulator как есть и когда потребуется. Если у вас нет источника, вам не повезло и нужна жирная версия архива, которая включает в себя код ядра i386.

+0

Я предоставил образец проекта. Посмотрите, можете ли вы помочь мне решить эту проблему? –

0

Я думаю, что эта ошибка не является дугой - проблема без дуги. Это кадр работа/Lib ошибка ссылка

Проверьте у вас есть интегрировать все кадр работает

+0

У меня есть, так как я сделал образец проекта как тот же, но без использования ARC. Он работал нормально. –

+0

проверить, что сторонняя библиотека работает только на не дуге, потому что может быть внутренними файлами lib только с использованием режима дуги, я думаю, t –

+0

Я думаю, что сторонняя сторона, предоставляющая non arc lib для этой проверки один раз –

Смежные вопросы