加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

ARM-linux 移植 SDL

发布时间:2020-12-14 00:37:23 所属栏目:Linux 来源:网络整理
导读:ref : https://blog.csdn.net/u012075739/article/details/24877639 ? 2. ? ???? 交叉编译 SDL 编译SDL前先要编译其依赖库 tslib、libiconv ? Tslib $ cd tslib-1.4 $ sudo apt-get install libtool automake autoconf $ ./autogen.sh ? $ echo "ac_cv_func_
ref : https://blog.csdn.net/u012075739/article/details/24877639

?

2.????? 交叉编译SDL

编译SDL前先要编译其依赖库 tslib、libiconv



?

Tslib

$ cd tslib-1.4

$ sudo apt-get install libtool automake autoconf

$ ./autogen.sh

?

$ echo "ac_cv_func_malloc_0_nonnull=yes"> arm-linux.cache

$ ./configure ?--prefix=/xyq/cross_compile/SDL ?--host=arm-linux ?--cache-file=arm-linux.cache

$ make

$ make install

?

Libiconv

$ cd ../libiconv-1.14

$ ./configure ?--prefix=/xyq/cross_compile/SDL ?--host= arm-linux ? --with-gnu-ld

$ make

$ make install

?

SDL?

$ cd ../SDL-1.2.14

$ ./configure --prefix=/xyq/cross_compile/SDL ?--host= arm-linux ? --build=i386 ?--with-gnu-ld ? --disable-video-nanox ?--disable-video-qtopia ? --disable-pulseaudio ??--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 ?CPPFLAGS="-I/xyq/cross_compile/SDL/include" ? LDFLAGS="-L/xyq/cross_compile/SDL/lib -lts-liconv"

$ make

$ make install

?

3. ? ??SDL测试程序交叉编译

SDL的测试程序在SDL源码目录的test目录下。

1)进入test目录,执行如下configure脚本生成Malefile

$ ./configure?--prefix=/xyq/cross_compile/SDL ?--host=arm-linux NM=arm-linux-nm LD=arm-linux-ld

? ??CC=arm-linux-gcc CXX=arm-linux-g++?AR=arm-linux-ar

??

2)Makefile默认是编译所有测试程序,但是在ARM上,游戏杆和opengl测试无法编译通过,要从Makefile文件中TARGETS去掉testgl,testjoystick的编译.

? ? ? 另外,默认的测试的路径指向是X86版,最简单的办法,可以手工修改Makefile调成ARM版。将

? ? ?

?

? ? ? ?改成:

? ? ??

? ? ? 之后 $ make 将在当前目录生成可执行文件。

?

?

4. ?? SDL程序的测试

?? ??先将SDL编译结果移植到ARM,分别是将编译得到的lib、bin分别拷到ARM的/usr/lib、/usr/bin。再将测试可执行文件拷到ARM,注意要改变其可执行权限。

注意SDL的运行时必须指定MOUSE设备.如使用tslib,则用如下命令设置SDL使用tslib.

????? $ export SDL_MOUSEDRV=TSLIB

? ??如果没有任何输入设备,则环境变量?export SDL_NOMOUSE=1?,否则初始化会提示:Couldn‘t initializeSDL:Unable to open mouse

?

接下来用SDL自带的testalpha来测试是否SDL下tslib是否正常工作.运行这个程序,如果在点击处准确出现黄色色块,表示tslib与SDL配合完合成功,以下是在320*240bpp=16的开发板的实测的截图.

? ? ? ? ?

?

5.?????SDL_image移植

有SDL本身所支持的仅仅是bmp格式的图片,要使用其他格式的图片就要使用其扩充库SDL_image,以下是编译过程:

$ cd ../SDL_image-1.2.8

$ ./autogen.sh

$ ./configure --prefix=/xyq/cross_compile/SDL ?--host= arm-linux ? –-enable-shared ?--build=i386 ?–-enable-static??-–enable-bmp ?-–enable-gif ?-–enable-jpg ?-–enable-png ?-–enable-tif ?-–enable-pnm ?-–enable-xpm ?–disbale-sdltest?

SDL_CFLAGS=”-I/xyq/cross_compile/SDLnclude/SDL” ?

SDL_LIBS=”-L/xyq/cross_compile/SDL/lib -lSDL”

LIBPNG_CFLAGS="-I/xyq/cross_compile/SDL/include"??

LIBPNG_LIBS="-L/xyq/cross_compile/SDL/lib-lpng" CPPFLAGS="-I/xyq/cross_compile/SDL/include"

LDFLAGS="-L/xyq/cross_compile/SDL/lib -ljpeg-lts -liconv"

$ make

$ make install?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读