移植madplay到arm板(代码片段)

xz-954042850-qq xz-954042850-qq     2023-03-22     205

关键词:

一、环境和软件介绍

1、主机环境:Ubuntu16.04

2、交叉编译器: gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67)

3、ARM板:kernel:2.6.35,SoC:S5PV210

4、软件包: zlib-1.2.3 、 libid3tag-0.15.1b.tar.gz 、 libmad-0.15.1b.tar.gz 、 madplay-0.15.2b.tar.gz,后三个获取链接:https://sourceforge.net/projects/mad/files/

二、移植以上几个库

1、交叉编译zlib-1.2.3

这个不细说,原因:我自己以前移植过了,在系统里存有编译好的zlib库文件,这百度也可以找到移植的方法

2、交叉编译libid3tag-0.15.1b.tar.gz(这个编译要依赖zlib的库)

(1)解压:

tar -xvf libid3tag-0.15.1b.tar.gz

(2)配置:

cd libid3tag-0.15.1b/
./configure --host=arm-linux CC=arm-linux-gcc --enable-static --disable-shared --disable-debugging --prefix=/root/madplay_installed CPPFLAGS=-I/root/dir_lib/include LDFLAGS=-L/root/dir_lib/lib

注意:

CC=arm-linux-gcc这选项是指定编译工具链。但是这前提是我已经为我的工具链创建了arm-linux-xxx这样的符号链接,并且将路径导出到了PATH

--prefix=/root/madplay_installed这个指定的是我自定义的libid3tag-0.15.1b的安装目录

CPPFLAGS=-I/root/dir_lib/include LDFLAGS=-L/root/dir_lib/lib,这是我这里特例,这是我指定的我之前编译好了的zlib的头文件和库的路径。

在./configure配置完了后,一定要看打印出来的信息,或者查看配置生成的Makefile,看看是否配置使用自己的交叉编译工具链

技术图片

(3)编译并安装:

make -j4
make install

技术图片

 3、交叉编译 libmad-0.15.1b.tar.gz

(1)解压:

tar -xvf libmad-0.15.1b.tar.gz

(2)配置:

cd libmad-0.15.1b/
./configure --host=arm-linux --enable-static --disable-shared -disable-debugging --prefix=/root/madplay_installed

注意:

--host=arm-linux这选项是指定编译工具链。但是这前提是我已经为我的工具链创建了arm-linux-xxx这样的符号链接,并且将路径导出到了PATH

--prefix=/root/madplay_installed这个指定的是我自定义的 libmad-0.15.1b的安装目录

在./configure配置完了后,一定要看打印出来的信息,或者查看配置生成的Makefile,看看是否配置使用自己的交叉编译工具链

 技术图片

(3)编译:

make -j4

出错:

技术图片

 这是因为编译工具链的版本过高导致的,高版本的 gcc 没有 "-fforce-mem" 参数,解决的办法是在 Makefile 里面查找 "-fforce-mem" ,将其删除即可 make 通过。

(4)安装

make install

技术图片

 4、交叉编译madplay-0.15.2b.tar.gz

(1)解压:

tar -xvf madplay-0.15.2b.tar.gz

(2)配置:

cd ~/madplay-0.15.2b/
./configure CC=arm-linux-gcc --host=arm-linux --enable-static --disable-shared --disable-debugging --prefix=/root/madplay_installed CPPFLAGS=-I/root/madplay_installed/include LDFLAGS=-L/root/madplay_installed/lib

注意:

CC=arm-linux-gcc:这选项是指定编译工具链。但是这前提是我已经为我的工具链创建了arm-linux-xxx这样的符号链接,并且将路径导出到了PATH

--prefix=/root/madplay_installed:这个指定的是我自定义的madplay-0.15.2b的安装目录

CPPFLAGS=-I/root/madplay_installed/include:指定libmad-0.15.1b的头文件安装目录

LDFLAGS=-L/root/madplay_installed/lib:指定libmad-0.15.1b的库文件安装目录

在./configure配置完了后,一定要看打印出来的信息,或者查看配置生成的Makefile,看看是否配置使用自己的交叉编译工具链

技术图片

(3)编译:

make -j4

出错:

技术图片

但是在./configure配置时,已经指定了libmad-0.15.1b的头文件和库文件的安装目录,没搞懂为什么,然后后来想到libmad-0.15.1b的库依赖与zlib的库,所以就索性把zlib编译后得到的头文件和库文件都拷贝一份到/root/madplay_installed下的相应子文件夹中,然后再次编译,就通过了。

(4)安装

make install

技术图片

我们最终需要的就是madplay这个可执行程序,把它移植到ARM板,可以通过./madplay xxx(xxx为mp3格式的音乐)来测试。

madplay安装和移植问题(代码片段)

madplay安装和移植问题madplay安装和移植1.madplay在x86安装遇到问题2.madplay移植到开发板madplay安装和移植1.madplay在x86安装遇到问题在对madplay中libid3tag-0.15.1b执行make时候报错/usr/local/lib/libz.a(deflate.o):relocationR_X86_64_PC32againstsymbol 查看详情

madplay移植到mini2440全过程具体解释(代码片段)

madplay交叉编译交叉编译器:arm-linux-gcc3.4.1PC环境:Ubuntu8.10注意:最好在root权限下运行下面移植。否则在makeinstall时可能权限不够。一、移植madplay前的准备madplay的移植须要下面的几个包:libid3tag-0.15.1b.tar.gz、libma... 查看详情

madplay安装和移植问题(代码片段)

madplay安装和移植问题madplay安装和移植1.madplay在x86安装遇到问题2.madplay移植到开发板madplay安装和移植1.madplay在x86安装遇到问题在对madplay中libid3tag-0.15.1b执行make时候报错/usr/local/lib/libz.a(deflate.o):relocationR_X86_64_PC32againstsymbol`_lengt... 查看详情

linux移植usbch340驱动到arm板,并作测试(代码片段)

文章目录一、安装usbserial驱动1.获得usbserial驱动2.加载usbserial驱动二、安装ch340驱动1.获得ch340驱动源码2.编译ch340驱动源码,生成ko驱动3.加载ch340驱动三、编写程序验证驱动能否正常使用linux-arm开发板在引出USB接口的时候,... 查看详情

基于v3s的语音助手移植pyaudio到开发板(代码片段)

基于V3S的语音助手(二)移植pyaudio到开发板1.前期准备portaudio源码pyaudio源码2.交叉编译portaudio配置./configureCC=arm-linux-gnueabihf-gccCXX=CC=arm-linux-gnueabihf-g++--host=arm-linux-gnueabihf 查看详情

十七s3c2440音频解码芯片wm8976声卡驱动移植madplay测试(代码片段)

学习目标:1.WM9876接口和工作原理;2.WM9876驱动移植;3.WM9876应用测试;4.问题总结1.WM9876接口和工作原理 本节使用了JZ2440开发板移植WM9876驱动,其结构如下图所示,最后利用madplay工具测试音频文件。IIS和控制接口:  查看详情

基于v3s的语音助手移植pyaudio到开发板(代码片段)

基于V3S的语音助手(二)移植pyaudio到开发板1.前期准备portaudio源码pyaudio源码2.交叉编译portaudio配置./configureCC=arm-linux-gnueabihf-gccCXX=CC=arm-linux-gnueabihf-g++--host=arm-linux-gnueabihf--prefix=/home/book/lichee/model/voice_p... 查看详情

arm板移植udev-126(代码片段)

下载udev-126.tar.xz下载的网址为: https://mirrors.edge.kernel.org/pub/linux/utils/kernel/hotplug/解压文件并且编译#tar-xvfudev-126.tar.xz#cdudev-126#mkdirbuild#vimconfig.subcase$basic_machinein#RecognizethebasicCP 查看详情

stm32mp157系统移植|移植st官方5.10内核到小熊派开发板(代码片段)

Linux内核移植流程移植Linux内核到一个新的板子上时,需要以下步骤:(1)选择一个硬件设计接近的板子,基于此板相关文件开始移植(2)拷贝单板配置文件(arch/arm/configs)(3)拷贝设... 查看详情

stm32mp157系统移植|移植st官方5.10内核到小熊派开发板(代码片段)

Linux内核移植流程移植Linux内核到一个新的板子上时,需要以下步骤:(1)选择一个硬件设计接近的板子,基于此板相关文件开始移植(2)拷贝单板配置文件(arch/arm/configs)(3)拷贝设... 查看详情

基于tiny6410的madplay播放器的移植

在移植madplay之前需要先将所需要的库移植到开发板的文件系统中。 现在每个解压后的文件夹中创建一个文件夹zlib-1.1.4.tar.gz解压:tarxvzf zlib-1.1.4.tar.gz   cdzlib-1.1.4   mkdir__install配置:./configure--shared--prefix=$(PWD)/__ins... 查看详情

全志h3系统移植|移植主线最新uboot2023.04和kernel6.1.11到nanopineo开发板(代码片段)

文章目录环境说明uboot移植kernel移植rootfs移植测试环境说明OS:Ubuntu20.04.5LTSGCC:arm-none-linux-gnueabihf-gcc10.3.0编译器下载地址:Downloads|GNU-ADownloads–ArmDeveloperuboot移植当前最新版本v2023.04-rc2下载地址:https://github.com/u-boot/u-boot/archive/re... 查看详情

linux系统移植:原厂kernel移植到开发板(代码片段)

文章目录Linux系统移植:原厂Kernel移植到开发板一、获取原厂内核并编译二、内核启动测试三、添加自己板子文件3.1板子配置文件3.2板子设备树3.3编译四、重要配置修改4.1主频修改4.2EMMC驱动修改4.3网络驱动修改4.4保存修改后... 查看详情

移植jz2440开发板(代码片段)

4.1移植第一步  前面已经分析过了.config的过程,可以知道移植需要用到的文件:.config文件arch/arm/cpu下的文件board目录   .config文件是根据后面两个文件生成的,所以我们重点需要配置后面两个目录4.1.2移植board目录  ... 查看详情

移植wpa_supplicant2.5到arm开发板

 编译libnl1-1:./configure--host=arm-linux--enable-static--prefix=/usr/local/sslCC=arm-linux-gnueabihf-gcc编译时出现错误:../include/netlink-local.h:239:11:error:‘ULONG_MAX’undeclared(firstuseinthisfunction 查看详情

mplayer移植到am335x开发板

参考《mplayer移植到arm心得》 ,http://blog.csdn.net/xiaohuangzhilin/article/details/52399746移植了mplayer1.0rc2版本 ./configure--prefix=/usr/local/mplayer--cc=arm-linux-gnueabihf-gcc--target=arm-linux--dis 查看详情

移植usbch340驱动到arm板,并作测试

一、安装usbserial驱动1.获得usbserial驱动2.加载usbserial驱动二、安装ch340驱动1.获得ch340驱动源码2.编译ch340驱动源码,生成ko驱动3.加载ch340驱动三、编写程序验证驱动能否正常使用linux-arm开发板在引出USB接口的时候,可外接U盘、键鼠... 查看详情

i.mx6ull应用移植|移植alsa到linux开发板(alsa-libalsa-utils1.2.7版本)(代码片段)

一、alsa-lib移植alsa-utils工具通过调用到alsa-lib库来对ALSA框架下的声卡进行操作。1.下载源码下载地址:http://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.7.1.tar.bz22.移植(1)创建alsa-lib存放的目录需要在开发板和ubunut中创建一... 查看详情