Объединение Objective-C и C / C в Mac OS X

#c #objective-c #xcode #macos #gcc

#c #objective-c #xcode #macos #gcc

Вопрос:

Могу ли я создать библиотеку Objective-C (с помощью XCode) и использовать ее в моем приложении на C / C (скомпилированном GCC без поддержки Objective-C).

Комментарии:

1. Что вы имеете в виду без поддержки Objective-C? Вы имеете в виду без поддержки Apple Framework / SDK?

2. Я имею в виду, что мой код objective-c не компилируется в gcc. Я должен писать исходный код на c / c , а не на objective-c.

3. Я не понимаю, использует ли Xcode gcc (или llvm) для компиляции вашего кода objective-c.

4. Я не использую XCode, я использую codeblocks IDE, чтобы мой исходный код был на C / C .

Ответ №1:

Вам необходимо создать интерфейс C или C для вашего кода Objective-C, чтобы вы могли использовать этот интерфейс для вызова кода Objective-C из вашего кода C / C . Обратите внимание, что вы можете воспользоваться бесплатным соединением Cocoa: например, вы можете вернуть NSString * и интерпретировать его как CFStringRef в вашем коде C / C .

Ответ №2:

Вы можете попробовать этот инструмент (на данный момент он довольно сырой) для генерации привязок C / C для кода Objective-C (созданный, чтобы помочь заставить код Wine [только на C] работать с библиотеками OSX [Objective-C]).

В этом электронном письме объясняется, как появился инструмент, и во вложении содержится код генерации привязки.

http://www.winehq.org/pipermail/wine-devel/2011-April/089657.html Загрузка на самом деле является tar.gz .

Вы могли бы попробовать это самостоятельно, а затем попробовать отправить Чарльзу электронное письмо с просьбой использовать его, если это слишком сложно (и попросить его где-нибудь настроить его как надлежащий проект. 🙂