无法找到alsa/asoundlib.h文件。

14

在编译我的Android源代码时,我遇到了这个错误。

无法找到 alsa/asoundlib.h

我已经安装了libasound2-dev。asoundlib.h存在于usr/include/alsa/文件夹中,但生成器仍然无法找到它。

有谁能告诉我为什么编译器无法找到asoundlib.h?如何将/usr/include添加到头文件搜索路径中?

3个回答

27
如果您使用的是debian或ubuntu,则运行apt-get install libasound2-dev可以解决问题。它将安装所需的头文件,但可能会遇到一些版本不兼容的情况。(在这种情况下,解决方案是返回源代码并找到它。)
此外,不同操作系统版本的包名称会有所不同。 通常情况下,如果已安装开发库,则可以通过运行locate asoundlib.h命令来找到它。

2

我曾经遇到过这个问题,但最终找到了解决方案。 在external/alsa-lib include文件夹中,它们拥有所有用于alsa-util编译的库。然而,alsa-util编译或其他与alsa相关的程序正在寻找alsa/*.h库,而所有*.h文件都在include文件夹中。

创建一个alsa文件夹,将其放置在external/alsa-lib/include/中,然后复制所有需要的库即可解决该问题。


0
你是从Subversion代码库获取源代码的吗?
我曾经遇到过同样的问题,因为我从一个非官方的Subversion代码库中检出了源代码。所以我首先安装了libasound2-dev,并将目录/usr/include/alsa复制到目录external/qemu/alsa中,就像你和Peter Ju建议的那样。但之后又出现了另一个错误:
make: *** No rule to make target 'prebuilt/linux-x86/sdl/lib/libSDL.a', needed by 'out/host/linux-x86/obj/STATIC_LIBRARIES/libSDL_intermediates/libSDL.a'.  Stop.

经过一些调查,我发现 prebuilt 文件夹中的一些静态库丢失了,因为 Subversion忽略了一些特定的文件扩展名。在获得这些文件之后,一切都运行正常了...

不知道这是否能解决你的问题,但也许对你或其他人来说,这是一个“缺失的链接”...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接