Статическая библиотека с поддержкой ARC, подключенная к неARC проекту, вызывает ошибки компоновщика

У меня есть проект без ARC, в котором используется статическая библиотека с поддержкой ARC. Это поддерживаемый сценарий, так что все работает нормально. Это происходит до тех пор, пока я не запускаю код на устройстве 4.x, включая Simulator. В этом случае код взрывается со следующей ошибкой компоновщика:

dyld: lazy symbol binding failed: Symbol not found: _objc_storeStrong
  Referenced from: /Users/zoul/Library/Application Support/iPhone Simulator/4.3.2/Applications/…/Demo.app/Demo
  Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation

Это происходит, как только какой-либо код с поддержкой ARC пытается вызвать функцию _objc_storeStrong, например в методе init (self = [super init]). Преобразование основного проекта в ARC решает проблему, но я хотел бы знать, есть ли другие решения.

24
задан zoul 6 January 2012 в 10:29
поделиться