带有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项目的主要内容,如果未能解决你的问题,请参考以下文章
是啥导致了带有强化 xcodebuild(Objective-C)的未知属性属性“类”?
Swift - 带有Objective-C选择器'*'的方法'*()'与具有相同Objective-C选择器的超类'UIView'中的'*'的getter冲突