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

标签 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)

我最好的

最佳答案

您正在处理 C++ 名称重整。声明具有 C 链接的函数:

#ifdef __cplusplus
extern "C" {
#endif

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

#ifdef __cplusplus
}
#endif

关于c++ - 如何从 Objc 文件调用 Object-c++ 文件中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33622238/

相关文章:

c++ - 错误 :conversion from 'QFont' to non-scalar type 'QFontMetricsF' requested-Qt

ios - 无法下载/读取我的 ios 应用程序文档路径中的文件

iphone - 如何从当前 View Controller 的实现文件加载另一个 View Controller ?

c++ - 如何在 C 风格的类声明中使用 NSInteger

c++ - 使用 Objective-C++ 从字节数组中读取特定字节并将它们转换为十六进制表示

c++ - 初始化列表问题

C++ 光线追踪器和归一化 vector

c++ - 比较处理 int 和 std::vector::size_type

objective-c - 需要 CoreTelephony 框架示例

objective-c - 将基本的 CFTypeRef 转换为更具体的 CoreFoundation 类型