目录
1、入式linux的系统配置
主板类型为arm,
交叉编译器为gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf,
交叉编译器的路径为:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf ,
工作pc为ubuntu环境
2、下载源码
假定下载的版本为alsa-lib-1.2.2
下载之后解压
tar -vxjf alsa-lib-1.2.2.tar.bz2 //解压 alsa-lib
3、编译与安装
库移植的一般步骤:编译、安装、拷贝库文件到开发板
在ubuntu建立如下路径
cd /usr/share
sudo mkdir arm-alsa
进入alsa-lib代码解压路径
cd alsa-lib-1.2.2/
配置alsa-lib的编译
./configure CC=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf-gcc STRIP=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf-strip --host=arm-linux-gnueabihf --prefix=/home/jerry/linux/open_lib/alsa/alsa-lib --with-configdir=/usr/share/arm-alsa
其中host是配置交叉编译环境
prefix是配置安装后生成的lib文件位置
with-configdir是配置安装文件所在位置,尤其是指定了alsa.conf的目录
这里专门配置CC和STRIP,否则则使用strip进行动态库瘦身的时候,可能会遇到File format not recognized的错误问题
如果配置过程中遇到automake的版本问题,可以采取如下办法解决
autoscan
aclocal
autoconf
automake --add-missing
然后
make
sudo make install
如果出现libatopology.la 编译失败,则切换到root用户重新进行安装,然后再切回原来的用户
sudo -s
source /etc/profile
make install
su jerry
安装成功后,可以看到/usr/share/arm-alsa目录(编译选项with-coigenfigdir配置的路径),生成了
alsa.conf文件和cards、pcm两个文件夹
/home/jerry/linux/open_lib/alsa/alsa-lib路径下则生成了bin、include、lib、share四个文件夹,其中lib文件中保存着具体的alsa-lib库文件
述配置安装方式,生成的库文件是动态链接库,如果直接移植到嵌入式系统,所占空间可能有点多,可以使用如下方式进行动态库瘦身,其中xxx为待瘦身的动态库文件名
cd alsa-lib/lib
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip xxx.so
接下来将上述文件拷贝到开发板上
其中/home/jerry/linux/open_lib/alsa/alsa-lib/lib目录(也就是编译选项prefix配置的路径)下的所有库文 件拷贝到根目录系统的/lib目录下(也可以是别的目录,只要将该目录加入环境变量即可)
如果开发板没有/usr/share/arm-alsa目录,则建立该目录,然后将/usr/share/arm-alsa目录下的所有文件全部拷贝到开发板的/usr/share/arm-alsa目录
在开发板上,增加如下环境变量声明
export ALSA_CONFIG_PATH=/usr/share/arm-alsa/alsa.conf
ALSA_CONFIG_PATH 用于指定 alsa 的配置文件
4、应用
将prefix配置路径下的所有文件,拷贝出来,就可以进行各种应用开发