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/目錄下,有許多例子。可以將例子複製到根文件系統

 

 

 

根目錄下,製作文件系統鏡像,燒寫文件系統鏡像於開發板上。也可以把交叉編譯得到的

 

 

例子使用網絡傳輸於開發板上。

 

至此移植完成。

發佈了27 篇原創文章 · 獲贊 28 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章