1、设置环境变量
建立交叉编译环境(详见3-3)
#export LDFLAGS=-L/opt/mipsel/lib
#export CFLAGS=-I/opt/mipsel/include
2、编译
(1)编译jpeg-7
软件名称 |
Libjpeg |
功能描述 |
Libjpeg是一个用c语言编写支持jpeg解码、编码的库 |
下载地址 |
http://linux.softpedia.com/get/Programming/Libraries/libjpeg-160.shtml |
软件版本 |
jpegsrc.v7.tar.gz |
依赖关系 |
默认 |
前置条件 |
源文件位置:$(work_dir)/jpeg-7 |
#./configure –-host=mipsel-linux –target=mipsel-linux –-prefix=/opt/mipsel
#make CC=mipsel-linux-gcc AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++
#make install
(2)编译freetype-2.4.3
软件名称 |
freetype-2.4.3 |
功能描述 |
Freetype是一个用c语言实现的字体栅格化引擎制作的一个库 |
下载地址 |
http://download.savannah.gnu.org/releases/freetype/ |
软件版本 |
freetype-2.4.3.tar.bz2 |
依赖关系 |
默认 |
前置条件 |
源文件位置:$(work_dir)/freetype-2.4.3 |
#./configure --prefix=/opt/mipsel --host=mipsel-linux --target=mipsel-linux
#make && make install
到/opt/ 下查看是否安装成功。生成了所需的头文件和库。
(3)编译libiconv
软件名称 |
libiconv |
功能描述 |
libiconv库为需要做转换的程序,实现了一个字符编码到另一个字符编码的转换 |
下载地址 |
http://www.gnu.org/software/libiconv/#downloading |
软件版本 |
libiconv-1.13.1.tar.gz |
依赖关系 |
默认 |
前置条件 |
源文件位置:$(work_dir)/libiconv-1.13.1 |
#./configure –-host=mipsel-linux –-target=mipsel-linux –-prefix=/opt/mipsel
# make CC=mipsel-linux-gcc AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++
# make install
(4)编译libpng-1.4.2
软件名称 |
libpng |
功能描述 |
libpng是多种应用程序所使用的解析PNG图形格式的函数库 |
下载地址 |
http://www.libpng.org/pub/png/libpng.html |
软件版本 |
libpng-1.4.2.tar.gz |
依赖关系 |
默认 |
前置条件 |
源文件位置:$(work_dir)/libpng-1.4.2 |
# ./configure –-host=mipsel-linux –target=mipsel-linux –-prefix=/opt/mipsel
# make CC=mipsel-linux-gcc
# make install
(5)编译SDL-1.2.13
软件名称 |
SDL-1.2.13 |
功能描述 |
SDL是一个自由的跨平台的多媒体开发包,适用视频音频和其他应用的软件 |
下载地址 |
http://www.libsdl.org/download-1.2.php |
软件版本 |
SDL-1.2.13.tar.gz |
依赖关系 |
默认 |
前置条件 |
源文件位置:$(work_dir)/SDL-1.2.13.tar.gz |
# ./configure -–host=mipsel-linux -–prefix=/opt/mipsel –-disable-static –-disable-nasm –-disable-video-x11 –-disable-x11-shared –-disable-dga –-disable-video-dga –-disable-video-x11-dgamouse –-disable-video-x11-vm –-disable-video-x11-xv -–disable-video-x11-xinerama -–disable-video-x11-xme --disable-video-x11-xrander --disable-video-x11-dpms --disable-video-svga --enable-input-tslib
--disable-esd --disable-esdtest --disable-esd-shared --without-x
# make
# make install
SDL/test 范例编译
# ./configure --host=mipsel-linux --without-x;
#make
(6)编译SDL_image-1.2.10
软件名称 |
SDL_image-1.2.10 |
功能描述 |
SDL_image是用于处理图形文件的开源函数库 |
下载地址 |
http://www.libsdl.org/projects/SDL_image/ |
软件版本 |
SDL_image-1.2.10.tar.tar |
依赖关系 |
默认 |
前置条件 |
源文件位置:$(work_dir)/SDL_image-1.2.10 |
# ./configure –-host=mipsel-linux –target=mipsel-linux –-prefix=/opt/mipsel
# make CC=mipsel-linux-gcc
修改项:
<-CFLAGS= -I/usr/local/include/SDL
->CFLAGS= -I/opt/include/SDL
<-LIBS = -Wl,rpath,/usr/local/lib -L /usr/local/lib –LSDL –lpthread
->LIBS=-Wl,rpath,/opt/lib –L/opt/lib –LSDL -lpthread
LIBPNG选项 添加成如下参数:
默认为空
SDL_CFLAGS、SDL_LIBS选项也修改成如下
# make CC=mipsel-linux-gcc
# make install
(7)编译SDL_ttf
软件名称 |
SDL_ttf-2.0.9 |
功能描述 |
SDL_ttf是让应用程序能渲染汉字的扩展库 |
下载地址 |
http://www.libsdl.org/projects/SDL_ttf/ |
软件版本 |
SDL_ttf-2.0.9.tar.gz |
依赖关系 |
默认 |
前置条件 |
源文件位置:$(work_dir)/SDL_ttf-2.0.9 |
# ./configure –-host=mipsel-linux –target=mipsel-linux –-prefix=/opt/mipsel
修改Makefile文件
>CFLAGS = -g -O2 -I/opt/include/freetype2 -I/opt/include -I/opt/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include
<CFLAGS = -g -O2 -I/usr/local/include/freetype2 -I/usr/local/include -I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT \ -I/usr/local/include
>FREETYPE_CONFIG = /opt/bin/freetype-config
<FREETYPE_CONFIG = /usr/local/bin/freetype-config
>LIBS = -L/opt/lib -lfreetype -L/opt/lib -Wl,-rpath,/opt/lib -lSDL -lpthread
<LIBS = -L/usr/local/lib -lfreetype -L/usr/local/lib -Wl,-rpath,/opt/lib -lSDL\ -lpthread
>SDL_CFLAGS = -I/opt/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
<SDL_CFLAGS = -I/usr/local/include/SDL -D_GNU_SOURCE=1 \ -D_REENTRANT
>SDL_CONFIG = /opt/bin/sdl-config
<SDL_CONFIG = /usr/local/bin/sdl-config
>SDL_LIBS = -L/opt/lib -Wl,-rpath,/opt/lib -lSDL,-lpthread
<SDL_LIBS = -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lSDL,-lpthread
# make CC=mipsel-linux-gcc AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++
# make install
若出现以下错误
则修改149行参数为下图所示
重新配置configure 后
# make CC=mipsel-linux-gcc AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++
# make install
(8)编译agar1.3.4
软件名称 |
agar-1.3.4 |
功能描述 |
agar是基于C和C++并且依赖与SDL库的开源图形应用软件 |
下载地址 |
http://libagar.org/download.html.en |
软件版本 |
agar-1.3.4.tar.gz |
依赖关系 |
默认 |
前置条件 |
源文件位置:$(work_dir)/agar-1.3.4 |
# ./configure --prefix=/opt/mipsel --without-gl --with-docs
(agar没有host选项基于)
>SDL_CFLAGS = -I/opt/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
<SDL_CFLAGS = -I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
>SDL_LIBS = -L/opt/lib -Wl,-rpath,/opt/lib -lSDL -lpthread
<SDL_LIBS = -L/usr/local/lib -Wl,rpath,/usr/lib -SDL,-lpthread
>FREETYPE_CFLAGS= -I/opt/include/freetype2 -I/opt/include
<FREETYPE_CFLAGS= -I/usr/local/include/freetype2 -I/usr/local/include
>FREETYPE_LIBS= -L/opt/lib -lfreetype
<FREETYPE_LIBS= -L/usr/local/lib -freetype
>JPEG_CFLAGS= -I/opt/include
<JPEG_CFLAGS= -I/usr/local/include
>JPEG_LIBS= -L/opt/lib -ljpeg
<JPEG_LIBS= -L/usr/local/lib -ljpeg
# make CC=mipsel-linux-gcc AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++
编译正确 通过
# make install
编译agar/demos
此处以loader为范例
# ./configure --without-gl --with-docs
此时需要对makefile.config 文件进行修改
>SDL_CFLAGS=-I/opt/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
<SDL_CFLAGS=-I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
>SDL_LIBS=-L/opt/lib -Wl,-rpath,/opt/lib -lSDL -lpthread
<SDL_LIBS=-L/usr/local/lib -Wl,-rpath,/usr/local/lib -lSDL -lpthread
>FREETYPE_CFLAGS=-I/opt/include/freetype2 -I/opt/include
<FREETYPE_CFLAGS=-I/usr/local/include/freetype2 -I/usr/local/include
>FREETYPE_LIBS=-L/opt/lib -lfreetype
<FREETYPE_LIBS=-L/usr/local/lib -lfreetype
>AGAR_CFLAGS=-I/opt/include/agar -I/opt/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include/freetype2 -I/opt/include
<AGAR_CFLAGS=-I/usr/local/include/agar -I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/local/include/freetype2 -I/usr/local/include
>AGAR_LIBS=-L/opt/lib -lag_gui -lag_core -L/opt/lib -Wl,-rpath,/opt/lib -lSDL -lpthread -L/opt/lib -lfreetype -lm -lpthread
<AGAR_LIBS=-L/usr/local/lib -lag_gui -lag_core -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lSDL -lpthread -L/usr/local/lib -lfreetype -lm -lpthread
# make CC=mipsel-linux-gcc AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++
9-2-3 sdl和agar移植
1、为了方便程序的编译测试,我们将非X11库做个备份:
#cd /usr/
#mkdir no_X11
#cp -rf local/include no_x11
#cp -rf local/lib no_x11
这样在no_X11下的库就是非X11库。
2、为了方便的使用这两种库,我们在Makefile.config里指定路径:
IPR_LIB_DIR=/usr/no_X11/lib
IPR_INC_DIR=/usr/no_X11/include
这样得到的可执行程序就是非X11的。
3、移植SDL库
将no_X11里面的库放进文件系统lib目录下
#cd /usr/no_X11
#cp libSDL* /home/ipr/ramdisk/lib
#cp libfreetype* /home/ipr/ramdisk/lib
可以看到安装完agar没有看到lib目录下有agar库,因为它是基于SDL的。
在 SDL-1.2.13/test或agar-1.3.4/demos/目录下,有许多例子。可以将例子复制到根文件系统
根目录下,制作文件系统镜像,烧写文件系统镜像于开发板上。也可以把交叉编译得到的
例子使用网络传输于开发板上。
至此移植完成。