2011-08-23 60 views
0

我有一些cpp文件,我的函数被写入。我想在我的iPhone应用程序中调用该功能?我如何在我的.m文件中调用C++方法?Apple Mach-O链接器(Id)错误:从.m文件调用C++文件时

这里是我的.cpp文件

int add(int a, int b) 
{ 
    return a+b; 
} 

现在在我的viewDidLoad事件我使用下面的代码只是为了获取一个标签的结果和显示器。

NSNumber *n = [[NSNumber alloc] initWithInt:add(5,7)]; 
[myLabel setText:[NSString stringWithFormat:@"%@",n]]; 

我收到了以下错误而编译:

Undefined symbols for architecture i386: 
    "_add", referenced from: 
     -[usingc__ViewController viewDidLoad] in usingc__ViewController.o 
ld: symbol(s) not found for architecture i386 
collect2: ld returned 1 exit status 

哪里是在代码中的错误?什么编辑是必要的?

回答

0

如果要在Objective-C文件中使用C++文件,请将文件扩展名从.m更改为.mm。

+0

谢谢maulik,那工作... – DShah

+0

欢迎您... – Maulik

+0

或者,在这个特定的情况下,把'extern'C''放在'add'的定义之前。尽管如此,我相信Maulik的答案对你可能试图做的事更普遍有用。 –