2012-01-15 6 views
3

私は現在、Android用NDKプロジェクトを構築するためにWindows 7 x64 PCを使用しています。私はvs-androidでVisual Studioプロジェクトに埋め込まれたTremor Ogg/Vorbisデコーダ(とSoundTouchRubberBand/FFTW3を試してみました)をコンパイルしています。私がやったことは、Cygwinでconfig.hファイルを生成することです。すべてが正常に動作しているようです。 しかし、、私は渡しているフラグができるだけ互換性があり、最適であることを確認したい。./configureを使用してconfig.hを生成する際に使用するホストとターゲットは何ですか?

build host and targetフラグの違いを理解していますが、どの文字列を渡すべきか正確にはわかりません。ホストとターゲットはまったく同じ文字列を使用しますか?

私はネットの周りに、コマンドラインのいくつかの異なる例を見つけたが、その違いの説明なしで:

--host=arm --target=arm-android-linux-uclibcgnueabi 

--host=arm-android-linux --target=arm-android-linux 

-–target=arm-eabi 

--target=arm-linux-androideabi --host=arm-linux-androideabi 

arm-linux-androideabi-4.4.3 (used in vs-android) 
--target=arm-androideabi4.4.3-linux -- host=target=arm-androideabi4.4.3-linux 

私も./autogen.shを使用するオプションを持っていますか、 ./configure、異なるオプションでconfig.hを生成します...

+0

質問に対する完全な答えではありませんが、コンパイラを使用している場合を除き、--targetはまったく使用しないでください。 --targetは、あなたが提供したリンクで説明されているように、GCCをx86上で実行し、アーム用にクロスコンパイルすることを可能にします。 Ogg/Vorbisデコーダはコードを生成しますか?もしそうでなければ、 - targetは無意味です。 – hvd

答えて

2

トレモアはconfig.hファイルを使用しません。したがって、振戦のために./configureを実行する必要はありません。必要な.cファイルをAndroid.mkファイルにインクルードすれば、完了です。

GoogleがAndroidソースでTremorをどのように編集しているかを見てみましょう。ここに、Android.mkファイルを含むgitリポジトリへのリンクがあります:blog postあなたはTremorにLGPLライセンスがあると書いています。それは間違いです。トレモアはBSDのようなライセンスを持っています。 BSDはLGPLよりもはるかにリラックスした言葉です。 LGPLは、基本的には、ライブラリを共有としてリンクするか、すべてのプロジェクトをLGPLの下に作成する必要があります。 BSDを使用すると、静的ライブラリとしてリンクすることができます。

そして実際には、ARMのために振戦よりも速いvorbisデコーダライブラリがあります。それはtremoloと呼ばれています。最新のバージョンはBSDのようなもので、本当に振戦よりも速く動作します。

+0

申し訳ありませんが、私はSoundTouchとTremorの間で混乱しました。今すぐすぐに多くのことをする。私の元の質問はまだ立っています。 – BrokenTeapot

+0

あなたのリンクを修正しました:)。 –

関連する問題