带有objective-c ++的Firebreath项目

Posted

技术标签:

【中文标题】带有objective-c ++的Firebreath项目【英文标题】:Firebreath project with objective-c++ 【发布时间】:2011-10-12 12:27:36 【问题描述】:

我需要在我的 Firebreath 项目中加入一些客观的 c 代码。问题是该项目使用 c++ 语言。所以我正在尝试使用 Objective-C++ 代码。插件项目名称是“OpenOnDesktopPlugin”,我将“OpenOnDesktopPluginAPI.cpp”重命名为“OpenOnDesktopPluginAPI.mm”,并创建了一个名为“DistributedNotification”的objective-c类,并将.m扩展名更改为.mm 我无法从“OpenOnDesktopPluginAPI.mm”初始化我的 Objective-c 类,我得到一些编译错误:

架构 x86_64 的未定义符号: “_OBJC_CLASS_$_DistributedNotification”,引用自: OpenOnDesktopPluginAPI.o 中的 objc-class-ref ld:未找到架构 x86_64 的符号 collect2: ld 返回 1 个退出状态

还有另一个错误:

架构 i386 的未定义符号: “.objc_class_name_DistributedNotification”,引用自: OpenOnDesktopPluginAPI.o 中指向文字 objc 类名的指针 ld:未找到体系结构 i386 的符号 collect2: ld 返回 1 个退出状态

谁能帮帮我?

【问题讨论】:

【参考方案1】:

未链接其中包含 DistributedNotification 类的源代码文件。确保它在目标的已编译文件列表中。

【讨论】:

嗨 JeremyP,目标的编译文件列表在哪里? 你知道如何验证我的方法被调用了吗?我有这个代码: void OpenOnDesktopPluginAPI::runNotification() DistributedNotification * _class= [[DistributedNotification alloc] init]; [_class 发布]; 但似乎这段代码从未被调用... 我的 Objective-c 项目正在运行。我将该类添加到目标列表并将其扩展名更改为“.mm”

以上是关于带有objective-c ++的Firebreath项目的主要内容,如果未能解决你的问题,请参考以下文章

带有块的 Objective-C 延迟动作

是啥导致了带有强化 xcodebuild(Objective-C)的未知属性属性“类”?

Swift - 带有Objective-C选择器'*'的方法'*()'与具有相同Objective-C选择器的超类'UIView'中的'*'的getter冲突

带有objective-c的opencv和c++ [关闭]

如何在 Objective-C 上发送带有参数的通知?

如何在Objective-C中以编程方式发送带有一些正文文本的短信[重复]