0

MonoDroid初心者はこちら

MonoDroid で記述された Android アプリケーションで静的な C++ ライブラリを使用したい (後で MonoTouch に移植したいので静的です)。Windows で MonoDevelop を使用していますが、そのようなライブラリをコンパイルしてリンクする方法を説明するチュートリアルが見つかりませんでした。私は現在、SWIG ツールキットを使用して PInvoke を使用して MonoDroid にバインドしようとしています。たとえば、C++ ライブラリに使用する必要があるコンパイラ、MonoDroid が使用できるように結果の lib ファイルをどこにデプロイする必要があるかなどを知る必要があります。誰かが私に役立つ何かを教えてくれますか?

4

1 に答える 1

1

.aさまざまな理由により、iOS と Android の間で同じファイルを使用することはできません。

  • AndroidはELF、iOSはMach-O
  • Android コードは位置独立コード ( ) としてコンパイルする必要があり-fPICます。最終的には になりますが、.soiOS にはその要件がありません (afaik)。
  • それらには、異なる ABI 呼び出し規約などがある場合があります。

ターゲット プラットフォームごとにソースを再コンパイルする必要があります。

とにかく再コンパイルする必要があることを考えると、.aAndroid 用のファイルを作成する意味は最小限です。を作成するだけ.soです。Android NDKdocs/ANDROID-MK.html内を参照してください。

Android NDKコマンドを使用して共有ライブラリを生成するSanityTestsサンプルもご覧ください。ndk-build

  • SanityTests.csproj BuildNativeLibs ターゲットは を呼び出しますndk-build
  • ndk-buildAndroid.mkを呼び出して、egを生成しますlibs\armeabi\libfoo.so
  • AndroidNativeLibraryビルド アクションは、ネイティブ ライブラリを結果の にバンドルします.apk
于 2012-04-23T16:17:16.323 に答える