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

标签 c++ objective-c xcode osx-lion objective-c++

我在 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 的 undefined symbol : “TestLibMain::getNumber()”,引用自: -[tbViewController buttonPressed:] 在 tbViewController.o ld:未找到架构 i386 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我的印象是,cpp 类尚未编译。

我尝试了很多东西,但它卡在某个地方。它们都在同一个目录中,我使用 .mm 扩展名,一切正常,但总是出现此链接器错误。变得疯狂:-)

Mac OS X 狮子,XCode 4.2

有什么想法吗?

最佳答案

int getNumber() {
    return 42;
}

.cpp.mm 中将 getNumber() 定义为自由函数。这:

int TestLibMain::getNumber() {
    return 42;
}

getNumber() 定义为 TestLibMain 的成员。

关于C++ 在 XCode 4.2 中不编译(链接?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8153043/

相关文章:

c# - C++ dll 将数组传递给 C#

c++ - 安全 UDP 套接字编程

c++ - 是否可以在现代 C++ 中使用 fork?

c++ - 使用蒙版获取图像像素

objective-c - 禁用手势识别器

c++ - 在 VC++ 中将常量 char 分配给结构内部的字符数组

ios - 在显示来自 viewDidload 的警报之前显示来自应用程序委托(delegate)的警报

objective-c - 在 NSTextView 中创建指向某些文本的超链接

xcode - XCode 4 支持 Erlang 语法突出显示和代码完成吗?

ios - 未知类型名称 'SKPaymentDiscount' 。 FBSDK核心套件