我有一个在 Xcode 4.5.2 中运行良好的 iOS 应用程序,但在 Xcode 4.6.3 中,我的自定义 c++ 类得到了未定义的符号。
一些类.hpp
class SomeClass{
public:
SomeClass();
void doStuff();
}
SomeClass.cpp
#include "SomeClass.hpp"
SomeClass::SomeClass(){
// ra ra ra
}
SomeClass::doStuff() {
// ra ra ra
}
调用类.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,而其 LLVM 4.1 是 4.5.2。
任何指导将不胜感激。
干杯