• (未完成)ARM-linux 移植 SDL


    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 

  • 相关阅读:
    浅析七种经典排序算法
    一个可编辑与新增博客园文章的 Python 脚本
    快速排序的几种实现方式
    如何查找某个网站的(如:有道云笔记)的接口
    一键导出「有道云笔记」所有笔记
    2020年启蒙及小学识字练字APP或小程序测评榜
    2020年部编版小学二年级语文上册知识点(完整版)
    2020年部编人教版小学语文一年级下册知识点汇总
    换个角度,程序员爸爸应该关注一下
    计算机基础知识-I/O篇
  • 原文地址:https://www.cnblogs.com/schips/p/11525509.html
Copyright © 2020-2023  润新知