2016-03-25 5 views
0

私は複数のフレームワークに依存するライブラリをバインドしようとしています。 xcodeで設定する方法のドキュメントは、http://sdk.camera360.com/page/iosguideです。私のバインディングから他のフレームワークを参照するには?

本質的には、それは、次の外部フレームワークに依存します:

pg_edit_sdk_common.framework 
pg_edit_sdk_cdb_piratesdk.framework 

次のiOSフレームワーク:

CoreMotion.framework 
AVFoundation.framework 
CoreMedia.framework 
CoreData.framework 
CoreGraphics.framework 
CoreImage.framework 
ImageIO.framework 
libstdc++.6.dylib 
libz.1.2.5.dylib 

をして、それはまた、フラグを必要とするように聞こえる:

-std=c++11 and -all_load 

私はバインドしていますPhotoEditFrameWork.aSharpieとバインディングプロジェクトを利用しています。 PhotoEditFramework.linkwith.csは次のようになります。

[assembly: LinkWith ("PhotoEditFramework.a", SmartLink = true, ForceLoad = true, 
    Frameworks="CoreMotion AVFoundation CoreMedia CoreData CoreGraphics CoreImage ImageIO", 
    LinkerFlags = "-all_load -lstdc++.6 -lz.1.2.5 -std=c++11")] 

しかし、私は次のエラーを取得するアプリ実行しようとすると:

MTOUCH: error MT5209: Native linking error: warning: ignoring file /Code/Tests/Camera360/Camera360Test/obj/iPhoneSimulator/Debug/mtouch-cache/PhotoEditFramework.a, missing required architecture i386 in file /Code/Tests/Camera360/Camera360Test/obj/iPhoneSimulator/Debug/mtouch-cache/PhotoEditFramework.a (2 slices) 
    MTOUCH: error MT5214: Native linking failed, undefined symbol: _PhotoEditFrameworkVersionString. This symbol was referenced by the managed member Camera360.Constants.PhotoEditFrameworkVersionString. Please verify that all the necessary frameworks have been referenced and native libraries linked. 
    MTOUCH: error MT5214: Native linking failed, undefined symbol: _PhotoEditFrameworkVersionNumber. This symbol was referenced by the managed member Camera360.Constants.PhotoEditFrameworkVersionNumber. Please verify that all the necessary frameworks have been referenced and native libraries linked. 

最初のエラーは、シミュレータに関連しているが。ライブラリにi386ターゲットがないためですか? 私は他の2つのエラーがpg_edit_sdk_common.frameworkpg_edit_sdk_cdb_piratesdk.frameworkへの参照に関連していると思います。 LinkWithでこれらの2つのフレームワークをどのように参照しますか。さらに、それらもバインドする必要がありますか?

答えて

1

あなたは最初の仮定で正しいです。ネイティブライブラリにはi386のターゲットがない可能性があります。 hereの指示に従って確認することができます。必要に応じて

は、外部のフレームワークとの問題を修正するには、結合プロジェクトにできるだけ多くの必要なネイティブライブラリを追加することができます。この場合、必要なpg _ *。frameworkファイルの両方からネイティブの.aファイルを取得し、バインディングプロジェクトに追加します。

注*あなたは.Aライブラリを追加した後、あなたはこれらのライブラリのためのよりLinkWith.csファイルを取得します。 LinkTargetが設定されていることを確認してください。私はあなたの既存のものにもそれがないことに気づいた。それを更新してください。

LinkTarget = LinkTarget.ArmV6 | LinkTarget.ArmV7 | LinkTarget.Simulator

しかし、あなたは.Aがサポートしているものは何でもLinkTargetの一致を確認する必要があります:このようなものでなければなりません。最初のリンクのテクニックを使用して確認してください(lipo -info

上記以外の回避策があります。here

+0

「orksタグ」とは何ですか? –

+0

一部の編集済みテキストの一部です。リビジョンを参照してください。http://stackoverflow.com/posts/36269451/revisions – chrisntr

+0

よろしくお願いいたします。いくつかの間違った情報を編集するとき、私はいくつかの文字を見逃しました。それをキャッチするためにありがとうchrisntr。 – therealjohn

関連する問題