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/目錄下,有許多例子。可以將例子複製到根文件系統
根目錄下,製作文件系統鏡像,燒寫文件系統鏡像於開發板上。也可以把交叉編譯得到的
例子使用網絡傳輸於開發板上。
至此移植完成。