2016-11-25 8 views
0

私の問題を既に参照して解決しているポストを見たことがありますが、それは2年前にアクティブだったので使用しようとしましたが、 (多分Xcodeで違いか何か) ここでは、関連記事です:iOSアプリケーションのライブラリを無視してシミュレータ用にコンパイル

私はvuforia、C++ライブラリで動作するプロジェクトを持っていますが、このライブラリはシミュレータと互換性がありません。私は私のアプリの他の機能をテストするために(たとえlibを使っている部分が明らかに動作しなくても)シミュレータのプロジェクトをコンパイルしたいと思う。

ヘッダ検索パス:../../build/include

ライブラリ検索パス:../../build/私のビルド設定で

は、私はこれを持っていましたlibに/アーム

私はポストに続いその他のリンカフラグ

に何も持っていなかった、私はlibにexclusiを削除しようとしました私は現在、以下を持っています: Library Search Path コンパイルエラーが変化し、libを使用するビューコントローラの1つに「Vuforia/Vuforia.h file not found」が表示されます。

だから私はそれの世話をした、と私はそれはそれの多くが、1つのエラーのために働くプリプロセッサ命令

#if !(TARGET_OS_SIMULATOR) 
.... 
#endif 

を追加しましたが

上に示したように、それはブロック内にある場合でも、まだそこにあります私も その他のリンカフラグでプレイしようとしたが、それは解決しない終わり
#if !(TARGET_OS_SIMULATOR) 

#import <QuartzCore/QuartzCore.h> 
#import <OpenGLES/ES2/gl.h> 
#import <OpenGLES/ES2/glext.h> 
#import <sys/time.h> 

#import <Vuforia/Vuforia.h> 
#import <Vuforia/State.h> 
#import <Vuforia/Tool.h> 
#import <Vuforia/Renderer.h> 
#import <Vuforia/TrackableResult.h> 
#import <Vuforia/VideoBackgroundConfig.h> 
... 
#endif 

...

あなたがFに私を助けることができますどのようにiOSデバイス専用のライブラリをバインドし、シミュレータ上でアプリケーションを実行するか?

ありがとうございます!

答えて

0

異なるヘッダー検索パスを設定しないでください。

前述のようにTargetConditionals.hを使用して、シミュレータのビルド時にVuforiaを無効にします。次に、リンクの世話をするために、 "ライブラリとのリンク"ビルド段階の代わりにOTHER_LDFLAGSを使用することをお勧めします。これは、プラットフォームごとにビルド段階を条件付けできないためです。

OTHER_LDFLAGS = -framework Vuforia 
OTHER_LDFLAGS[sdk=*simulator] = 
+0

次のようなxcconfigを使って簡単にこれを行うことができます:私はそれを試したが、私はまだ同じエラーがある、私はリンクが良いと思う:それは私がiPhoneをターゲットにコンパイルし、シミュレータのエラーは 'Vuforia/Vuforia.h'ファイルが見つかりませんです。これは、シミュレータのリンク解除が機能するためです。上記のようなTargetConditionals.hを使用すると、問題が発生します。私はそれを試してみましたendifを定義し、値がiPhone上で良いので、それは動作するはずです、そして、複数のファイルでTargetConditionalsを使用している間、エラーは1つのファイルのためです... – zarghol

+0

あなたが 'シミュレータ用にコンパイルするときに「ファイルが見つかりません」というエラーが表示された場合、TARGET_OS_SIMULATOR条件付きのインクルードを正しく保護していません。 –

+0

私はそれを見つけました! #if(TARGET_OS_SIMULATOR)を使用するたびに、TARGET_OS_SIMULATORに.hを含めなかったためです。それは今働いている!ありがとう! – zarghol

関連する問題