【发布时间】:2013-08-18 02:42:44
【问题描述】:
我有一个在 Xcode 4.5.2 中运行良好的 iOS 应用程序,但在 Xcode 4.6.3 中,我的自定义 c++ 类得到了未定义的符号。
SomeClass.hpp
class SomeClass{
public:
SomeClass();
void doStuff();
}
SomeClass.cpp
#include "SomeClass.hpp"
SomeClass::SomeClass(){
// ra ra ra
}
SomeClass::doStuff() {
// ra ra ra
}
CallingClass.mm
#include "SomeClass.hpp"
@implementation CallingClass
-(void) execute{
SomeClass someObject;
someObject.doStuff();
}
@end
错误
Undefined Symbols for arm7:
SomeClass::SomeClass() referenced from:
-[CallingClass execute:] in CallingClass.o
.hpp 文件设置为 C++ Headers,.cpp 文件设置为 C++ Source,.mm 文件设置为 Objective-C++ Source。
每个 .cpp 文件都存在于 Build Phases/Compiled Sources 中。
libc++.dylib 包含在我正在使用的库的项目中。
4.6.3 C 语言方言是 c11,而在 4.5.2 中是 C99[-std=c99]。 C++ 语言方言和 C++ 标准库在两个版本的 Xcode 中都设置为编译器默认值。
Xcode 4.6.3 中的编译器是 Apple LLVM 4.2,而 4.5.2 中的编译器是 LLVM 4.1。
我们将不胜感激任何指导。
干杯
【问题讨论】:
-
您阅读过 4.6.3 的发行说明吗?
-
深入了解。代码开发人员必须知道他/她正在开发的代码。您必须熟悉您所操作的规则,否则您无法操作。
-
任何机会你都可以给我一个链接,或者一个简单的答案。
-
我知道默认编译器现在在 C++11 上当叮当响,但我不明白是什么阻止了我的 c++ 类被链接。
标签: objective-c++ undefined-symbol xcode4.6.3