我在Xcode中有一个非常小的程序,只显示标签并在viewWillAppear方法中更改标签的文本。 label.text应该来自一个C ++库,其函数如下:
int getNumber(){
return 42;
}
问题是,在我的* .mm(!)类中包含 #import“TestLibMain.h”的类并使用
的函数TestLibMain *tlb = new TestLibMain();
int myInt = tlb->getNumber();
NSString *myString = [NSString stringWithFormat:@"%d",myInt];
不会调用编译器错误,而是调用链接器错误:
架构i386的未定义符号: “TestLibMain :: getNumber()”,引自: - tbViewController.o中的[tbViewController buttonPressed:] ld:找不到架构i386的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
我的印象是,cpp-class尚未编译。
我尝试了很多东西,但某个地方却悬而未决。它都在同一个目录中,我使用.mm扩展名,一切都很好,但总是这个链接器错误。变得疯狂: - )
Mac OS X Lion,XCode 4.2
有什么想法吗?
答案 0 :(得分:5)
int getNumber() {
return 42;
}
在.cpp
或.mm
中定义getNumber()
作为免费功能。这样:
int TestLibMain::getNumber() {
return 42;
}
将getNumber()
定义为TestLibMain
的成员。