2

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 です。

ガイダンスをいただければ幸いです。

乾杯

4

2 に答える 2

0

解決済み

.hpp ファイルを .h に、.cpp ファイルを .mm に変更しました。

于 2013-08-18T06:28:05.803 に答える