2011-07-12 9 views
0

私はObjective Cを初めて使用しています。私は前任者(C++)の仕事を指し、それをiPhoneアプリ(Objective C)に使用する小さなサンプルプロジェクトを与えられました。サンプルを伸ばすのではなく(素早く汚いと思っていましたが、私はそれを邪魔したくありませんでした)、私は自分のもののために最初から新しいプロジェクトを作りました。それを動作させるには、前のライブラリと同じリンクを別のライブラリと同じように設定する必要がありますが、私の設定では既存のプロジェクトとの違いを見つけることはできませんが、そのトリックは行いません。私はこれに達し同僚とGoogleの助けを借りてObjective-CプロジェクトにC++ヘッダーを含めると、 "Expected * Before *"エラーが発生します。

1)プロジェクトはXcodeのの「ファイルの追加」ダイアログを経由して、2つのライブラリファイル、libyid.aとlibvrpn.aが含まれています。ビルド設定のライブラリ検索パスにライブラリのパスが自動的に追加され、ファイルはXCodeのプロジェクトフォルダ構造に表示されます。 私が知る限り、このビットは問題を引き起こさないようです。 編集:これらのファイルをプロジェクトから削除すると、同じエラーが発生します。私は今、XCodeがヘッダーを解決できると思っていますが、実装を見つけることができず、ライブラリはそこにあっても正しく設定されていない可能性がありますか?私のカスタムクラスの

2)一つは、私がビルド設定で「ヘッダ検索パス」に、ファイルの場所へのパスを追加し、大丈夫見つけているようだ

#import "DisplayYid.h" 

使用しています。 (私はまた、いくつかの点で、「ファイルを追加」ダイアログを経由してファイルを追加しましたが、それは何も変更しませんでしたので、私はそれをこのように左)

今問題:

@interface YidController : NSObject { 
    DisplayYid *myYid; 
    // (etc. etc.) 
} 

識別子でを"DisplayYid"は不明のままです(エラー:DisplayYidの前に予期された指定子 - 修飾子リスト)。また、自分自身をDisplayYidヘッダ内のすべてのクラス定義は

error: expected '=', ',', ';', 'asm' or '__attribute__' before '__declspec'

ここでの私の知識は残念ながら非常に限られているが、XCodeの質問にヘッダを見つけることができますが、何とか期待するように私には思えるが得含み異なるフォーマット/言語のコンテンツですか? DisplayYid.hがプロジェクト階層にファイルとして含まれていたときに、ファイルインスペクタのファイルタイプを「C++ヘッダー」に設定しようとしましたが(私の問題ではGoogleで見つかったヒットのいくつかのヒントが示唆したように)ものを変える。 私はいくつかの小さな、しかし重要な細部を見逃していると感じていますが、それ以上のことをテストするのに十分なものではありません。うまくいけば誰かが私の行方不明のリンクを見ていますか?申し訳ありませんが、これが長すぎる場合は、問題がある場合に備えて詳細な手順を取り入そうとしました。お時間を事前に

感謝;)

EDIT:This questionは、彼は単にコピーしたファイルからのエラーを複数回取得することが特に事実、同じ問題のようです。しかし、提案された解決策のどれも私のために働くようではありません。

+1

あなたのobjcファイルに.mm拡張子を使用していますか?申し訳ありませんが、最初にこれをクリアしましょう... – sergio

+0

'#import" DisplayYid.h "がヘッダファイル(' .h')の1つにあると仮定します。このヘッダーを扱うすべての実装ファイルは拡張子 '.mm'(' .m'の代わりに)を持っていますか? – DarkDust

+0

私はこの前に他のいくつかの質問で.mmのものを読んでいましたが、これを私がここに持っているものと一致させることはできませんでした:すべての実装ファイルは.mで終わりますが、それが働くこと。 DisplayYid.hが参照するすべてのコードは、2つのライブラリから得られます。たとえば、libyid.aは複数の.cppファイルからプリコンパイルされています。これに属する.mまたは.mmファイルはありません。 – Louise

答えて

0

これまでしばらくしていましたが、私はこれまでに作業していた人を抱えていました。それは彼に時間を要したが、彼は行方不明のビットが見つかりました:プロジェクトの設定では、二つのコンパイラフラグを設定する必要がありました。そこから

-DIOS(フラグのiOSを定義する) -x Objective-Cの++

すべてがうまくいった。これはむしろプロジェクト関連の質問と解決策だったので、私はそれをすべて一緒に削除すべきですか?

関連する問題