2014-12-13 3 views
1

Есть ли способ построить приложение Objective-C с Garbage Collection?Как заставить сбор мусора?

Я пишу библиотеку для улучшения приложения Mac (таким образом, я запускаю приложение с DYLD_INSERT_LIBRARIES='/path/to/dylib' /Applications/Original.app/Content/MacOS/Original).
Когда я запускаю это, я сначала имел проблемы, потому что мой lib использовал ARC, в отличие от оригинального приложения. Теперь у меня отключили ARC, но я получаю эту ошибку во время выполнения, до оригинальных сбоев приложений:

objc[610]: '/Users/me/mylib/myLib.dylib' was not compiled with -fobjc-gc or -fobjc-gc-only, but the application requires GC  
objc[610]: *** GC capability of application and some libraries did not match  

Однако, похоже, что Apple, теперь убрали поддержку простого старого GC в пользу ARC вместо.
Я попытался использовать GCC_ENABLE_OBJC_GC от XCode или аргумент -fobjc-gc для gcc (или clang), но я получаю эту ошибку компилятора: garbage collection is no longer supported.
Похоже, я застрял ... Есть ли способ заставить сборку lib с GC? Я думаю, что я мог бы использовать старую версию LLVM/gcc, которая все равно будет поддерживать GC, но есть ли более простой способ?
Примечание: Я использую XCode 6.1 и Yosemite, исходное приложение (и, следовательно, моя библиотека) является 32-разрядным.

Большое спасибо

ответ

0

Как указано here: -

Xcode 5.1 no longer supports building OS X apps that use garbage collection; attempting to build such targets results in a build error.

+0

Да, это то, что я понял, как хорошо. Вопрос в том, есть ли способ обойти это ограничение? Я не смогу создать свой lib с XCode или с официальным компилятором LLVM, но, может быть, некоторые трюки (вне XCode явно) позволят мне его построить? – Daladim

+0

Насколько мне известно, самый простой способ - использовать старую версию XCode. Поскольку новые компиляторы больше не поддерживают его, я сомневаюсь, что вы сможете их использовать. – TheDarkKnight

+0

Ну, вот что я попробую. Мне бы хотелось избежать этого, но похоже, что это единственный способ, хотя ... К счастью, я сохранил старый жесткий диск с Snow Leopard на нем (со старыми версиями XCode и компилятора), я возьму его с его ящик, где он просто собирает пыль :) – Daladim