1

C++ コードと C コードを呼び出すサード パーティ ライブラリをバインドしようとしています。正しく機能させるために、追加のモノタッチ引数に追加する必要があるものがあるかどうか疑問に思っていました。

私たちが受け取ったライブラリ (ネイティブ iOS 用) の実装手順では、ライブラリには C および C++ ファイルが含まれており、XCode コンパイラがすべてのソース ファイルを認識できるようにするには、ライブラリのコントローラーを含むファイルに、ファイル拡張子 .mm

また、静的ライブラリ内のすべての Objective-C クラスをリンクし (私が収集したものから、モノタッチではこれは -all_load フラグを使用することを意味します)、次にビルド設定のその他のリンカー フラグを -ObjC に設定するように言いました。

最後の部分では、XCode 4.5 以降を使用する場合、コンパイラ オプション "C++ Language Dialect" および "C++ Standard Library" を "Compiler Default" に設定する必要があると述べています。

バインディングを正常に作成し、メソッドにアクセスできます。しかし、一部のコールバックはすべてのデータを返すわけではなく、さらに奇妙なことに、デリゲート オブジェクトの一部のコールバックは複数回トリガーされます。これは、ライブラリ内の C および C++ コードが原因であり、バインディング プロジェクトの linkwith.cs ファイルと iOS ビルド オプションの追加の mtouch 引数にすべての適切なフラグを追加していないためだと思います。

これらのバインドを正しく機能させるために、mtouch 引数または linkwith.cs ファイルに入れる必要がある特別な引数はありますか?

4

1 に答える 1