使用./configure为Android生成config.h时要使用的主机和目标是什么?

时间:2012-01-15 16:25:24

标签: android c++ cross-compiling

我目前正在使用Windows 7 x64 PC为Android构建NDK项目。我正在编译嵌入到Tremor的Visual Studio项目中的SoundTouch Ogg / Vorbis解码器(并试用RubberBandFFTW3 / vs-android)。我所做的是用Cygwin生成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 ...

1 个答案:

答案 0 :(得分:2)

Tremor不使用config.h文件。所以没有必要为震颤运行./configure。只需在Android.mk文件中包含所需的.c文件即可。

看看谷歌如何编译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一样,它的效果比震颤更快。