sdl和agar交叉编译

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_CFLAGSSDL_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是基于CC++并且依赖与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 sdlagar移植    

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/testagar-1.3.4/demos/目录下,有许多例子。可以将例子复制到根文件系统

 

 

 

根目录下,制作文件系统镜像,烧写文件系统镜像于开发板上。也可以把交叉编译得到的

 

 

例子使用网络传输于开发板上。

 

至此移植完成。

你可能感兴趣的:(sdl和agar交叉编译)