Gcc на вашем Linux-компьютере должен быть способен компилировать Objective-C вместе со стандартными базовыми классами, такими как NSString
или NSArray
. Вам может понадобиться apt-get
интерфейс для gcc. Или еще лучше использовать LLVM.
Пока вы не используете библиотеки Apple в своем общем коде, у вас все будет в порядке, чтобы скомпилировать его в Linux.
Вы должны будете обернуть свои функциональные возможности Objective C в функции C, если вы хотите вызывать их из своего приложения C или C ++. Я дал некоторые рекомендации по этому вопросу в своем ответе на этот вопрос SO: есть ли способ использовать библиотеку Objective-C в C? .
РЕДАКТИРОВАТЬ : (чтобы ответить на вопросы комментариев)
Функция-обертка должна быть .m и должна быть скомпилирована с помощью компилятора Objective-C, так как она будет по-прежнему содержать код Objective-C и просто предоставлять простые функции .C . Это то же самое, что C API оболочка для кода C ++, все еще должна быть кодом C ++ - просто с определенными extern "C"
функциями. В Objective-C вам нужно нет extern "C"
, так как Objective-C все еще C - та же связь и т. Д.
Вы можете использовать результирующую библиотеку с простым флагом -l
в GCC-совместимых компиляторах.
Под библиотеками Apple я имею в виду нечто большее, чем NSFoundation.h
- конкретные библиотеки iPhone - например, CocoaTouch .
NSFoundation.h
определенно предоставляется вашим пакетом Objective-C / GNUStep.