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

时间:2015-11-10 03:15:18

标签: c++ objective-c objective-c++

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

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

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

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

我最好的

1 个答案:

答案 0 :(得分:1)

您正在获得C ++名称修改。声明函数有C链接:

#ifdef __cplusplus
extern "C" {
#endif

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

#ifdef __cplusplus
}
#endif