在 Mac OS X 上结合 Objective-C 和 C/C++
Posted
技术标签:
【中文标题】在 Mac OS X 上结合 Objective-C 和 C/C++【英文标题】:Combining Objective-C and C/C++ on Mac OS X 【发布时间】:2011-05-01 12:35:57 【问题描述】:我能否创建一个 Objective-C 库(通过 XCode)并在我的 C/C++ 应用程序中使用它(由 GCC 编译,不支持 Objective-C)。
【问题讨论】:
不支持Objective-C是什么意思?你的意思是不支持 Apple Framework/SDK? 我的意思是我的 Objective-C 代码,没有在 gcc 中编译。我应该写c/c++源代码而不是objective-c。 Xcode 正在使用 gcc(或 llvm)编译你的 Objective-c 代码,我不明白。 我不使用XCode,我使用codeblocks IDE,我的源代码应该是C/C++。 【参考方案1】:您需要为您的 Objective-C 代码创建一个 C 或 C++ 接口,因此您可以使用该接口从您的 C/C++ 代码中调用 Objective-C 代码。请注意,您可以利用 Cocoa 的免费桥接:例如您可以返回 NSString* 并将其解释为 C/C++ 代码中的 CFStringRef。
【讨论】:
【参考方案2】:您可以尝试这个工具(目前它还很原始)为 Objective-C 代码生成 C/C++ 绑定(创建它是为了帮助 Wine [C only] 代码与 OSX[Objective-C] 库一起工作)。
这封电子邮件解释了该工具是如何产生的,并将绑定生成代码作为附件。
http://www.winehq.org/pipermail/wine-devel/2011-April/089657.html 下载的其实是一个tar.gz。
你可以自己试一试,如果太麻烦的话,可以尝试给 Charles 发邮件说要使用它(并让他在某处将其设置为合适的项目。:-)
【讨论】:
以上是关于在 Mac OS X 上结合 Objective-C 和 C/C++的主要内容,如果未能解决你的问题,请参考以下文章
在 OS X (Objective-C) 和 iOS (Swift) 之间共享代码
Objective c 动画 UIbutton 像 mac os x 上的停靠效果
Qt 4.8 - 在 mac-mini (OS X Lion) 上检测 sd 卡的插入和移除