如何从 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
我有一个 .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