gpt4 book ai didi

c - alsa-lib - 找不到结构定义。低级设计模式?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:14:56 25 4
gpt4 key购买 nike

第 63 行 this example header file有一个类型定义:

typedef struct _snd_ctl_elem_info snd_ctl_elem_info_t;

代码中有多个这样的 typedef 示例。我的目标是获得结构 _snd_ctl_elem_info 的实际定义,但我已经 grepped 源代码并用谷歌搜索但没有发现实际定义的痕迹。由于这次搜索失败,我开始认为我可能遗漏了一些概念,这可能与内核和向后兼容性有关?

我这样做的动机是能够通过 gdb 单步执行 alsa 并对结构有一个概览。

这是某种形式的低级结构定义模式吗?

最佳答案

alsa-lib 也使用这个结构来与内核通信,所以它只是重用了内核的定义。

内核头文件将安装为 /usr/include/sound/asound.h , 但为了避免依赖正确安装的内核头文件,alsa-lib 在 alsa-lib/include/sound/asound.h 中有自己的此文件副本。 .

应用程序不应直接访问此结构的成员,因此 alsa-lib 包含 asound.h从它的官方头文件(甚至不安装它;它只在编译 alsa-lib 时使用)。

要获得实际定义,您需要 #include <sound/asound.h> .

关于c - alsa-lib - 找不到结构定义。低级设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31533023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com