Alsa_lib及alsa测试应用程序静态编译说明

1. 获得alsa-lib-1.2.3的源码. 可以进入alsa官网下载:AlsaProject                                                                
   安装编译器,执行 sudo apt install gcc-arm-linux-gnueabi

    用于测试alsa的应用程序源码, 我使用的下面这位博友的代码. 非常感谢这位博友将代码分享出来.
Linux下使用alsa-lib库完成音频开发: 实现放音和录音(从声卡获取PCM数据保存、向声卡写PCM数据输出) - 腾讯云开发者社区-腾讯云

2. 进入alsa-lib-1.2.3源码目录进行configure. 执行命令如下
./configure --host=arm-linux-gnueabi --build=arm-linux  --enable-static --enable-shared=no --prefix=/home/joker/linux_learn/note/alsa/alsa_app/alsa-lib-1.2.3/opt --disable-old-symbols

prefix一项可以自由设置. 这里我将alsa_lib编译为静态库.

2.1 编译alsa_lib,执行下列命令.
    make
    make install

出现 alsa-lib-1.2.3/src/timer/timer.c:151: undefined reference to `snd_timer_open_symbols' 错误:

打开timer.c文件, 将snd_timer_open_symbols()函数注释掉就可以了.

3.进入alsa-lib-1.2.3目录, 将alsa测试程序源码playback_ok.c文件也复制到该目录,
    静态编译执行:
    arm-linux-gnueabi-gcc playback_ok.c opt/lib/libasound.a -ldl -lpthread -lm --static -I/home/joker/linux_learn/note/alsa/alsa_app/alsa-lib-1.2.3/opt/include

4.处于alsa-lib-1.2.3目录内, 由于prefix设置为alsa-lib-1.2.3/opt, 所以alsa-lib安装在此目录内.
    由于prefix设置不恰当的缘故, 需在开发板创建对应目录. 执行:
    mkdir -p  /home/joker/linux_learn/note/alsa/alsa_app/alsa-lib-1.2.3/opt

4.1 处于alsa-lib-1.2.3源码目录内, 将输出目录opt的内容复制到 开发版的 /home/joker/linux_learn/note/alsa/alsa_app/alsa-lib-1.2.3/opt 目录即可.

    其实只需要复制
    opt/share/alsa/alsa.conf,
    opt/share/alsa/cards/aliases.conf,
    opt/share/alsa/pcm/default.conf     这三个文件即可.

5. 这样只需要将步骤3生成的a.out文件复制到开发板,即可正常运行.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值