【问题标题】:Firebreath project with objective-c++带有objective-c ++的Firebreath项目
【发布时间】: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 个退出状态

谁能帮帮我?

【问题讨论】:

    标签: c++ objective-c


    【解决方案1】:

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

    【讨论】:

    • 嗨 JeremyP,目标的编译文件列表在哪里?
    • 你知道如何验证我的方法被调用了吗?我有这个代码: void OpenOnDesktopPluginAPI::runNotification() { DistributedNotification * _class= [[DistributedNotification alloc] init]; [_class 发布]; } 但似乎这段代码从未被调用...
    • 我的 Objective-c 项目正在运行。我将该类添加到目标列表并将其扩展名更改为“.mm”
    猜你喜欢
    • 2012-09-01
    • 2018-02-03
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多