C++在XCode 4.2中没有编译(链接?)

Mar*_*ser 1 c++ xcode objective-c objective-c++ osx-lion

我在Xcode中有一个非常小的程序,只显示标签并在viewWillAppear方法中更改标签的文本.label.text应该来自一个C++库,其函数如下:

int getNumber(){
    return 42;
}
Run Code Online (Sandbox Code Playgroud)

问题是,在我的*.mm(!)类中包含#import"TestLibMain.h"的类并使用该函数

TestLibMain *tlb = new TestLibMain();
int myInt = tlb->getNumber();
NSString *myString = [NSString stringWithFormat:@"%d",myInt];
Run Code Online (Sandbox Code Playgroud)

不会调用编译器错误,但会发生链接器错误:

架构i386的未定义符号:"TestLibMain :: getNumber()",引自: - tbViewController.o中的[tbViewController buttonPressed:] ld:找不到架构i386 clang的符号:错误:链接器命令失败,退出代码为1 (使用-v查看调用)

我的印象是,cpp-class尚未编译.

我尝试了很多东西,但在某个地方它已经挂了.它都在同一个目录中,我使用.mm扩展名,一切都很好,但总是这个链接器错误.变得疯狂 :-)

Mac OS X Lion,XCode 4.2

有任何想法吗?

Iro*_*san 5

int getNumber() {
    return 42;
}
Run Code Online (Sandbox Code Playgroud)

在一个.cpp.mm定义getNumber()为自由函数.这个:

int TestLibMain::getNumber() {
    return 42;
}
Run Code Online (Sandbox Code Playgroud)

定义getNumber()为.的成员TestLibMain.