我有C ++文件:C.cpp和C.h
//C.h
#ifndef __ThreeMoreOpenCV__SourceC__
#define __ThreeMoreOpenCV__SourceC__
#include <iostream>
class C
{
public:
static void Cmethod ();
};
#endif
//C.cpp
#include "SourceC.h"
using namespace std;
void Cmethod()
{
printf("ff");
}
我也有Wrapper.h / .mm
//Wrapper.h
#import <Foundation/Foundation.h>
@interface CVWrapper : NSObject
+(void)returnCmethod;
@end
//Wrapper.mm
#import "Wrapper.h"
#import "C.h"
@implementation CVWrapper
+(void)returnCmethod
{
C::Cmethod();
}
@end
我不知道,但出现类似以下错误:
“ C :: Cmethod()”,引用自:
Wrapper.o中的+ [Wrapper returnCmethod]
ld:找不到体系结构i386的符号
铛:错误:链接器命令失败,退出代码为1(使用-v查看调用)。
谁能告诉我调用函数的正确方法是什么?
最佳答案
您实际上尚未在C类中实现Cmethod函数。您需要在函数头中使用C::
来实现它,例如:
void C::Cmethod()
{
printf("ff");
}
关于c++ - 如何在Objective-C中调用C++方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15603120/