我目前正在使用Windows 7 x64 PC为Android构建NDK项目。我正在编译嵌入到Tremor的Visual Studio项目中的SoundTouch Ogg / Vorbis解码器(并试用RubberBand和FFTW3 / 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 ...
答案 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一样,它的效果比震颤更快。