我经历过Objective-C ++的一些奇怪行为。 我有一个Objective-C ++类,它在方法体中调用经典的C函数。 但是链接器找不到C函数。
我在这里描述了这个问题: Xcode print symbol not found for my C function which used in Objective-C method body
我通过将Objective-C ++类更改为Objective-C类来解决问题,但问题仍然存在。是否禁止在Objective-C ++类中调用C函数?
答案 0 :(得分:10)
您需要确保声明C函数
extern "C"
在相应的.h文件中。
这样做的常见方法是:
//
// foo.h
//
#ifndef __FOO_H__
#define __FOO_H__
#ifdef __cplusplus
extern "C" {
#endif
// ... your interface here - normal C function declarations etc ...
#ifdef __cplusplus
}
#endif
#endif