资源描述
关于嵌入式各种移植详细步骤
SDL动画在PC上显示:
首先建立一个文件夹以便存放配置的文件,此时我在根目录下建立一个/sun/pcSDL
然后在此文件夹下解压缩
tar -xzvf SDL-1.2.14.tar.tar
cd SDL-1.2.14
./configure
make install
cd test
gcc testsprite.c -o testsprite -L/usr/lib -I/usr/include/SDL -lSDL
./testsprite
------------------------------------------------------------------
SDL动画在ARM板上显示:
首先建立一个文件夹以便存放配置的文件/sun/armSDL
cd SDL-1.2.14
配置:./configure --prefix=/sun/armSDL --disable-video-nanox -disable-video-qtopia
--disable-video-photon --disable-video-ggi --disable-video-svga --disable-video-aalib
--disable-video-dummy --disable-video-dga --disable-arts --disable-esd --disable-alsa
--disable-video-x11 --disable-nasm --enable-joystick
--enable-input-tslib --enable-video-fbcon --host=arm-linux --build=i386
编译:make
安装:make install
cd test
编译:arm-linux-gcc testsprite.c -o testsprite -L/sun/armSDL/lib -I/sun/armSDL/include/SDL -lSDL
将testsprite文件和会显示笑脸的.bmp图片以及/sun/armSDL/lib下的三个.so文件拷贝到/usr/sun(共享文件)里
minicom
挂载:mountnfs 192.168.1.13:/usr/sun/ /mnt/nfs
进入共享文件夹:cd /mnt/nfs
直接运行./testsprite
就会在开发板上显示笑脸
此时可以把库文件复制到开发板的库文件夹中:cp lib* /mnt/yaffs/Qtopia/lib/
./testsprite开发板同样会显示笑脸
------------------------------------------------------------------
PC机上播放音乐:
1:解压libid3tag-0.15.1b libmad-0.15.1b madplay-0.15.2b
2:创建目录,如:/sun/pcmp3
3:(1)# cd libmad-0.15.1b
# ./configure --prefix=/sun/pcmp3
# make
# make install
(2)# cd libid3tag-0.15.1b
# ./configure --prefix=/sun/pcmp3
# make
#make install
(3)cd madplay-0.15.2b
#./configure --prefix=/sun/pcmp3 CPPFLAGS=-I/sun/pcmp3/include LDFLAGS=-L/sun/pcmp3/lib
# make
# make install
4:将mp3歌曲拷到maplay-0.15.2b
5:# ./mp3 歌曲名
------------------------------------------------------------------
ARM上播放音乐
把libz-1.1.4 、libid3tag-0.15.1b 、libmad-0.15.1b 、madplay-0.15.2b复制到/sun下,并解压缩到此处 产生四个同名文件夹
在/sun下建立一个文件夹,为了方便命名为6410mp3
cd libz-1.1.4
(1) ./configure --host=arm-linux --prefix=/sun/6410mp3
(2) make
(3) make install
(4) cd ..
cd libid3tag-0.15.1b 重复操作(1) (2) (3) (4)
cd libmad-0.15.1b 重复操作(1) (2)
此时会出现错误 解决方法:
gedit Makefile
查找ff把前面那个fforce那一部分删除
保存退出
然后继续执行 (3) (4)
#cd madplay-0.15.2b
#./configure --host=arm-linux --prefix=/sun/6410mp3 CPPFLAGS=-I/sun/6410mp3/include LDFLAGS=-L/sun/6410mp3/lib
然后继续重复执行(2) (3) (4)
在/usr/**(共享文件夹)下建立一个新文件夹musicyizhi
把/sun/6410mp3下bin里面的madplay和lib里面所有的.so文件以及.mp3文件复制到musicyizhi下
进入开发板:minicom
挂载
cd /mnt/nfs/musicyizhi
cp *.so* /mnt/yaffs/Qtopia/lib/
./madplay 爱忧伤.mp3
(此时开发板可以发出声音,但使用的仍然是电脑中的文件)
#cd /mnt/nfs/musicyizhi
#cp *.so.* /yaffs/Qtopia/lib/
#cp 爱忧伤.mp3 madplay /mnt/yaffs/Qtopia/lib/sun
#./madplay 爱忧伤.mp3
开发板发出声音。
------------------------------------------------------------------
------------------------------------------------------------------
动态库编译
gcc -shared *.c -o libtest.so(生成libtest.so)
mv libtest.so /usr/lib
gcc -L/usr/lib -o test -ltest (生成test)
./test
-------------------------------------
静态库编译
gcc -c test.c (生成test.o)
ar cr libtest.a test.o (生成libtest.a)
mv libtest.a /usr/lib
gcc main.c -o test -L/usr/lib -ltest (生成test)
./test
-------------------------------------
要了解的知识:
1、linux系统默认的lib库有 /lib 、/usr/lib 、/usr/local/lib
2、gcc编译器关于静态库和动态库的一些参数:
-shared指定生成动态链接库
-static指定生成静态链接库
3、探究可执行文件生成之后是否还需要库文件(即如果删除库文件,可执行文件是否
还能正常运行)
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动
态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在
程序运行时还需要动态库存在。
展开阅读全文