4

Wikitude SDKのネイティブ ライブラリ バインディングを作成しています。

MonoTouch アプリがリンクに失敗する:

アーキテクチャ armv7 の未定義シンボル:
"std::__1::basic_string, std::__1::allocator >::find_last_of(char const*, unsigned long, unsigned long) const"、参照元: WtUnzip::unzipFileTo(char const *, bool)in WikitudeSDK.a(wtunzip.o) ...

私のLinkWith:

[assembly: LinkWith ("WikitudeSDK.a", LinkTarget.ArmV7, Frameworks = "CoreVideo Security SystemConfiguration CoreMedia AVFoundation CFNetwork CoreLocation CoreMotion MediaPlayer OpenGLES QuartzCore CoreGraphics", ForceLoad = true, LinkerFlags = "-lsqlite3.0 -ObjC", IsCxx = true)]

私はこの MonoTouch/IOS の世界に慣れていないことを認めなければなりません。

アプリをリンクするにはどうすればよいですか?

4

2 に答える 2

5

LinkWith に libc++ を追加する必要があると思いました。私の新しい LinkWith は次のようになります。

[assembly: LinkWith ("WikitudeSDK.a", LinkTarget.ArmV7, Frameworks = "CoreVideo Security SystemConfiguration CoreMedia AVFoundation CFNetwork CoreLocation CoreMotion MediaPlayer OpenGLES QuartzCore CoreGraphics", ForceLoad = true, LinkerFlags = "-lsqlite3.0 -ObjC -lc++", IsCxx = true)]

うまくいけば、それが最終的に他の人を助けることができます.

于 2013-05-13T02:48:42.640 に答える
0

リンク手順が「ネイティブ リンクに失敗しました。未定義のシンボル: std::string::find_last_of(char const*, unsigned long, unsigned long)...」で失敗する問題に対処していました。

アプリの iOS 展開ターゲットが元のネイティブ ライブラリと一致していないことが判明しました。それらを一致させることにより (同じバインディング ライブラリの動作中の「コンシューマー」と比較することにより)、エラーを回避することができました。

于 2015-03-20T15:55:43.790 に答える