2012-01-15 14 views
3

我正在使用Windows 7 x64 PC爲Android構建NDK項目。我正在編制 Ogg/Vorbis解碼器(並試用SoundTouchRubberBand/FFTW3)嵌入到帶有vs-android的Visual Studio項目中。我所做的就是用Cygwin生成config.h文件,並且一切似乎都正常。 但是,我想確保我通過的標誌儘可能兼容和優化。使用./configure爲Android生成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或的選擇./配置,其中生成一個config.h具有不同的選項...

+0

不是你的問題的完整答案,但除非你正在處理編譯器,否則根本不應該使用--target。 --target,如您在提供的鏈接中所解釋的,允許您構建GCC以在x86上運行併爲arm進行交叉編譯。 Ogg/Vorbis解碼器是否會生成任何代碼?如果不是,--target是沒有意義的。 – hvd 2012-01-15 21:17:14

回答

2

Tremor不使用config.h文件。所以沒有必要運行./configure進行震顫。只需在Android.mk文件中包含所需的.c文件即可完成。

看看Google如何在Android源代碼中編譯Tremor。這裏有一個包含Android.mk文件的git倉庫的鏈接:https://android.googlesource.com/platform/external/tremor.git

順便說一下,在你的blog post中,你寫到Tremor有LGPL許可證。那是錯的。 Tremor擁有類似BSD的許可證。 BSD比LGPL寬鬆得多。 LGPL基本上或者要求你將庫鏈接爲共享鏈接,或者使你的項目在LGPL之下。有了BSD,你可以靜態鏈接到庫並完成。

實際上,ARM的震顫比vorbis解碼庫更快。它叫做tremolo。它的最新版本也是類似BSD的,它的運行速度比震顫更快。

+0

對不起,我在SoundTouch和Tremor之間感到困惑。立即做很多事情。我原來的問題依然存在。 – BrokenTeapot 2012-01-15 19:45:46

+0

修復了你的鏈接:)。 – 2012-01-21 19:36:53

相關問題