ALSA-Lib 与 ALSA-Utils 移植与configure: error: No linkable libasound was found.解决

一、环境下载

1、首先需要从官方网站下载对应版本的 ALSA-Lib 和 ALSA-Utils 源代码(版本差异不大,一般选择最新稳定版即可)。

二、ALSA-Lib 移植

1、将下载的 ALSA-Lib 源码包进行解压,准备开始移植工作。

tar -xvjf alsa-lib-1.2.14.tar.bz2

2、然后进入解压后的源码目录,继续后续操作。

cd alsa-lib-1.2.14/

3、配置编译选项,并编译安装

./configure 运行自动配置脚本,为后续的 make 生成 Makefile 等构建文件。

--host=arm-linux-gnueabihf 指定你的交叉编译器

--prefix=/root/tools/alsa/alsa-lib 指定make install最终生成的库文件

--with-configdir=/usr/share/arm-alsa 指定 ALSA 的配置文件目录(修改目录是为了不与开发板冲突)

./configure --host=arm-linux-gnueabihf --prefix=/root/tools/alsa/alsa-lib --with-configdir=/usr/share/arm-alsa

make
make install

4、编译安装完成后,将生成的相关库文件(如 libasound.so 等)拷贝到开发板的对应目录中,用于后续音频功能的使用。

cp -r  /root/tools/alsa/alsa-lib/lib/*  开发板/us/lib目录下
cp -r  /usr/share/arm-alsa/*   开发板/usr/share/arm-alsa/目录下

二、ALSA-Utils 移植

1、解压获取的 ALSA-Utils 源码包,为编译移植做准备。

tar -xvjf alsa-utils-1.2.14.tar.bz2

2、解压完成后,进入生成的源码目录,准备进行配置与编译。

cd alsa-utils-1.2.14/

3、配置编译选项并执行安装操作。在此过程中,可能会遇到如下错误提示:configure: error: No linkable libasound was found.该错误通常表示未正确指定交叉编译环境中 ALSA-Lib 的路径,或未将其链接库导出到环境变量中。

./configure 执行自动配置脚本,生成 Makefile。

--host=arm-linux-gnueabihf 指定交叉编译器

--prefix=/root/tools/alsa/alsa-utils 指定make install最终生成的文件的位置

--with-alsa-inc-prefix=/root/tools/alsa/alsa-lib/include 指定依赖alsa-lib的include位置

--with-alsa-prefix=/root/tools/alsa/alsa-lib 指定依赖alsa-lib的静态库位置

--disable-alsamixer 不编译 alsamixer(因为它依赖 ncurses,为了避免报错)。

--disable-xmlto 禁用基于 xmlto 的文档构建,避免缺少 xmlto 工具时报错。

 ./configure \
  --host=arm-linux-gnueabihf \
  --prefix=/root/tools/alsa/alsa-utils \
  --with-alsa-inc-prefix=/root/tools/alsa/alsa-lib/include/ \
  --with-alsa-prefix=/root/tools/alsa/alsa-lib/ \
  --disable-alsamixer \
  --disable-xmlto   

解决方法

//编译前环境变量配置(请根据实际路径调整)
export CFLAGS="-I/root/tools/alsa/alsa-lib/include"
export LDFLAGS="-L/root/tools/alsa/alsa-lib/lib"
export PKG_CONFIG_PATH="/root/tools/alsa/alsa-lib/lib/pkgconfig"
export LIBS="-lasound -lm -ldl -lpthread"

//配置、编译与安装 ALSA-Utils
./configure \
  --host=arm-linux-gnueabihf \
  --prefix=/root/tools/alsa/alsa-utils \
  --with-alsa-inc-prefix=/root/tools/alsa/alsa-lib/include \
  --with-alsa-prefix=/root/tools/alsa/alsa-lib \
  --disable-alsamixer \
  --disable-xmlto

make
make install

4、最后,将编译生成的可执行文件及相关库文件拷贝到开发板,完成 ALSA-Utils 的移植。

cp -r /root/tools/alsa/alsa-utils/bin/* 开发板/bin/目录下
cp -r /root/tools/alsa/alsa-utils/sbin/*  开发板/sbin/目录下
cp -r /root/tools/alsa/alsa-utils/share/*  开发板/usr/share/目录下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值