私はJNI経由でAndroidプロジェクトで使用されるC++コードベースを持っています(ビルドスクリプトなどはすべてAndroid固有です)。同じライブラリの古いバージョンを使用しているObjective Cプロジェクトを更新する必要があります。問題は、私はObjective Cコードだけを持っていますが、古いC++コードとiOS makefile(外部の代理店によって行われたもの)ではなく、バイナリの.aファイルだけです。 JNIコードから静的なiOSライブラリを生成するには、どうすればいいですか?私はこれを今読んでいる:http://www.clintharris.net/2009/iphone-app-shared-libraries/とあなたが助けに興味を持っている場合は、このポストをより詳細に更新します。Android NDKライブラリを静的なiOSライブラリにコンパイルする方法
答えて
お試しに問題がありますか?コードがクロスプラットフォームであり、iOS上で実行できるとすれば、新しいメイクファイル(Androidは特化されている)を作成するか、新規または既存のXCodeプロジェクトにファイルをドラッグするだけです。
AppleのClangは、C、C++、Obj-Cをコンパイルすることができます。たとえば、Obj-CとC++を混在させる必要がある場合は、ファイルの名前を.mmとしてください。
例のMakefile(注:ずさんが、説明すべきである!):アンディ・ロス@ http://pastebin.com/ZyrsfT87
あなたは固まっています。 iOSとAndroidは同じABIを共有していません。リンカの魔法を使ってELF共有ライブラリからシンボルを引き出してMachバイナリにリンクすることができたとしても、引数の渡しやスタックフレームの設定などが異なるため、関数がクラッシュすることがありました(正直なところ、 iOSはEABIではありません)。これは、各機能のアセンブリレベルのサンク処理レイヤーを作成したり作成したりする場合には、ほんのわずかです。しかし、基本的に:あなたはSOLです。
おかげで、私は、バイナリ互換性について考えていないよ - 私は、ソースファイルを持って、それらを構築する方法をただわからないがiOSの場合、およびNDK固有の部分を移植する方法について説明します。私の質問はすぐに詳細に更新されます。 – Gabor
- 1. Android NDK共有ライブラリのコンパイル時に静的ライブラリをコンパイルできない
- 2. Android NDKと静的ライブラリ
- 3. Android NDK、2つの静的ライブラリとリンク
- 4. 共有ライブラリ内の静的ライブラリのAndroid NDKコールAPI
- 5. Android NDK Cmake .a(静的)ライブラリをリンクする
- 6. iOS上のWebrtc静的ライブラリ
- 7. 静的ライブラリlibm.aまたはlibc.aをNDK cmakeにリンクする
- 8. CMake:静的ライブラリと共有ライブラリの異なるコンパイル定義
- 9. 他の静的ライブラリにリンクする静的ライブラリに動的ライブラリをリンクする
- 10. 複数のライブラリをコンパイルするNDK
- 11. Android NDK共有ライブラリ
- 12. 別のndkプロジェクトに静的ライブラリを含めるには?
- 13. 静的ライブラリ内の静的ライブラリ
- 14. あらかじめビルドされた静的ライブラリと共有ライブラリをAndroid NDKにリンクするときの問題
- 15. Adobe Native ExtensionリンクエラーのiOS静的ライブラリのコンパイル
- 16. アンドロイドビルド静的ライブラリ
- 17. Android-NDKでヘッダ専用C++ライブラリ(GLM)がコンパイルされない
- 18. Windows用の静的な.libライブラリをLinuxやMacosでコンパイルする方法
- 19. コンパイルされた静的ライブラリの変更
- 20. AndroidのJNI共有ライブラリに静的ライブラリをリンクします。
- 21. NDKツールを使用してソースコードでライブラリをコンパイルするには?
- 22. Makefileに静的ライブラリと動的ライブラリを作成する方法は?
- 23. XCodeで静的ライブラリの静的ライブラリを作成する
- 24. VC++で静的ライブラリとしてBotan暗号ライブラリをコンパイルするには?
- 25. iPhoneデバイスとシミュレータ(armv6、armv7、i386)のfat静的ライブラリにlibmmsをコンパイルする方法
- 26. 静的ライブラリのndk-build - なぜ他のファイルをビルドしていますか?
- 27. 既存のxcodeプロジェクトから静的なiOSライブラリを作成する方法
- 28. Android NDK - ライブラリのコンパイル中にエラーが発生しました
- 29. CMakeでソースを再コンパイルせずに共有ライブラリと静的ライブラリを構築する方法
- 30. 静的ライブラリの静的メンバー
@nuskoolerに感謝します。最初の質問は、 'Application.mk'をLLVM/GCCビルドに変換する方法です。これに関するチュートリアルは見つかりませんでした。私はいくつかの 'Makefile.Lib'もぶら下がっているのを見ていますが、どうしたらよいか分からず、明らかに' make:*** No targets。 Stop.' – Gabor
@ ber4444ここでは、iOS 5.0.1用のsqliteをビルドするMakefileの例を示します。かなりうっすらですが、一般的な概念を説明する必要があります。基本的には、この時点で標準のMakefilesを扱っています+ GCCやClang/LLVMのためのAppleのほんのいくつかのコマンドです:http://pastebin.com/ZyrsfT87 – NuSkooler