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++ ヘッダーに設定され、.cpp ファイルは C++ ソースに設定され、.mm ファイルは Objective-C++ ソースに設定されます。
各 .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 です。
ガイダンスをいただければ幸いです。
乾杯