c++ - 在树莓派零中编译 ALSA 项目的 pcm.c 示例时出现问题
问题描述
我正在使用带有最新树莓派操作系统的树莓派零 W
我已经安装了 libasound2 和 libasound2-dev,并且我从树莓派论坛上下载的用于测试 alsa 库的代码编译并正确运行:
#include <stdio.h>
#include <stdlib.h>
#include <alsa/asoundlib.h>
#include <alsa/pcm.h>
int main() {
int val;
printf("ALSA library version: %s\n", SND_LIB_VERSION_STR);
printf("\nPCM stream types:\n");
for (val = 0; val <= SND_PCM_STREAM_LAST; val++)
printf(" %s\n",
snd_pcm_stream_name((snd_pcm_stream_t)val));
return 0;
}
我正在尝试在此处编译 ALSA 项目网站中提供的正弦波生成示例代码:https ://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2pcm_8c-example.html
这在他们的示例页面中列为 pcm.c
我已将此代码保存在 main.cpp 中,并且我已更改#include "../include/asoundlib.h"
(这会导致编译时找不到文件错误)为#include <alsa/asoundlib.h>
我使用gcc main.cpp -o main -lasound -fpermissive
. 我收到一系列警告,但最后for (format = 0; format < SND_PCM_FORMAT_LAST; format++) {
在它说有的行出现错误,no match for operator++
并且operand type is 'snd_pcm_format_t' {aka '_snd_pcm_format'})
. 但是根据他们的文档format
已被声明为static snd_pcm_format_t format = SND_PCM_FORMAT_S16;
并且snd_pcm_format_t
是一个枚举。
我需要做什么才能编译这个基本示例?或者是否有一个更简单的示例展示如何使用 C++ 在 ALSA 中生成正弦音,或者有一些博客或教程解释了 ALSA 的这个示例代码是如何工作的?
解决方案
推荐阅读
- vue.js - 如何为对象列表构建 vuex 存储并根据 ID 单独映射到它们
- docker - 部署到 gcloud 时出现 CircleCI kubectl 配置错误
- android - 如何使谷歌地图中心的图像引脚与位置对齐,而不是在 Android 中底部对齐
- django - 如何使用 id 用户参数重定向到个人资料页面?
- objective-c - 从超级视图中删除在动画完成处理程序中不起作用
- python - Goodreads API 错误:列表索引必须是整数或切片,而不是 str
- sql-server - 无法连接到我的 SQL Server 数据库,错误:我没有打开文件的权限?
- python - Python通过值查找两个字典是否具有相同的键分区
- amazon-web-services - AWS Lambda 无法从 VPC 内访问内部服务器
- reactjs - 登录后如何重定向到 UserProfile 视图