如何从 Obj-c 文件中调用 Obj-c++ 文件中的函数?

How to call a function in an Obj-c++ file from an Obj-c file?

我有一个 .m 文件,最近必须包含对 C++ 命名空间的引用,这意味着我需要重命名它以具有 .mm 扩展名。这似乎工作正常,但现在,不相关的函数调用出现链接器错误。以前我的 header 中有以下内容没有问题:

void CMLogMessage(NSString *Message, ...);

将相应的 .m 文件更改为 .mm 后,我现在收到以下链接器错误:

Undefined symbols for architecture i386:
 "_CMLogMessage", referenced from:
  (Code References From .m Files Here)

我最好的

您正在进行 C++ 名称修改。声明具有 C 链接的函数:

#ifdef __cplusplus
extern "C" {
#endif

    void CMLogMessage(NSString *message, ...);

#ifdef __cplusplus
}
#endif