查看: 7443|回复: 39

[讨论] [中秋福利]关于Hi35xx平台 移植freetype、SDL以及SDL_ttf的分享总结

    [复制链接]
发表于 2016-9-14 16:58:48 | 显示全部楼层 |阅读模式
本帖最后由 localhost 于 2016-9-14 17:04 编辑

关于使用Hi3516等平台
        在实现osd文字处理的时候
        除了官方的HiFB文档方式处理
        另一种处理方式就是用第三方函数库:freetype+SDL+SDL_ttf
        然后配合region(区域管理)方式 实现文字叠加

这里主要讨论freetype、SDL、SDl_ttf这些库的安装及使用,关于region叠加处理请参考:

首先,是函数库源码包下载,各位可以去官网下载
(要注意源码包的版本兼容,我在编译函数库时就出现了freetype与SDL库的某些版本在一起无法编译的问题)
有需要的朋友 可以直接从我的附件中下载 经过试验可以确保 源码可用可编译移植;

接下来,下载好源码按照以下步骤 安装:
        (注:目前建议全部安装默认路径,切换路径要注意逻辑关系,待后续更新)
        1、freetype安装:
                tar -xvf freetype***.tar.bz2 解压
             进入freetype文件目录
                执行./configure CC=arm-hisiv300-linux-gcc --host=arm-hisiv300-linux
                        make
                        make install

        注:若安装成功则会在 /usr/local/目录下生成 bin、lib、include、share四个文件夹并且内部有相关文件;
       
        2、SDL安装:
                tar -xvf SDL-***.tar.gz 解压
             进入SDL文件目录
                执行./configure CC=arm-isiv300-linux-gcc --host=arm-hisiv300-linux
                        make
                        make install

        注:若安装成功后将会在usr/local/目录下的bin、lib、include、share目录下生成相应文件
       
        3、SDL_ttf安装:
                tar -xvf SDL_ttf-***.tar.gz 解压
              进入SDL_ttf文件目录
                执行./configure CC=arm-hisiv300-linux-gcc --host=arm-hisiv300-linux
                        make
                        make install

        注:若安装成功后将会在 usr/local/ 目录下的bin、lib、include、share目录下生成相应文件

NOTE:
        若以上均安装成功,则在 usr/local 目录下存在如下文件
        执行 tree  -L  2
        .
        ├── bin
        │    ├── freetype-config
        │    └── sdl-config
        ├── include
        │    ├── freetype2
        │    ├── ft2build.h
        │    └── SDL
        ├── lib
        │    ├── libfreetype.a       
        │    ├── libfreetype.la
        │    ├── libfreetype.so -> libfreetype.so.6.9.0
        │    ├── libfreetype.so.6 -> libfreetype.so.6.9.0
        │    ├── libfreetype.so.6.9.0
        │    ├── libSDL-1.2.so.0 -> libSDL-1.2.so.0.11.4
        │    ├── libSDL-1.2.so.0.11.4       
        │    ├── libSDL.a
        │    ├── libSDL.la
        │    ├── libSDLmain.a
        │    ├── libSDLmain.la
        │    ├── libSDL.so -> libSDL-1.2.so.0.11.4
        │    ├── libSDL_ttf-2.0.so.0 -> libSDL_ttf-2.0.so.0.10.1
        │    ├── libSDL_ttf-2.0.so.0.10.1
        │    ├── libSDL_ttf.a
        │    ├── libSDL_ttf.la
        │    ├── libSDL_ttf.so -> libSDL_ttf-2.0.so.0.10.1
        │    └── pkgconfig
        └── share
               ├── aclocal
               └── man

最后,将  include  和   lib(  libSDL.so,  libSDL_ttf.so,  libfreetype.so) 拷贝到相应的应用工程的目录中 并修改Makefile规则 进行编译调试
NOTE: 在板卡执行时,要把 libfreetype.so.6  libSDL-1.2.so.0 libSDL_ttf-2.0.so.0 拷贝到板卡 /lib 目录下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
楼主热帖
发表于 2016-10-13 16:11:36 | 显示全部楼层
libtool: compile:  arm-hisiv300-linux-gcc -g -O2 -I./include -D_GNU_SOURCE=1 -fvisibility=hidden -I/usr/include -DXTHREADS -D_REENTRANT -DHAVE_LINUX_VERSION_H -Wall -c ./src/audio/dma/SDL_dmaaudio.c  -fPIC -DPIC -o build/.libs/SDL_dmaaudio.o
In file included from /usr/include/sys/select.h:31:0,
                 from /usr/include/sys/types.h:220,
                 from /usr/include/bits/fcntl.h:24,
                 from /usr/include/fcntl.h:34,
                 from ./src/audio/dma/SDL_dmaaudio.c:30:
./src/audio/dma/SDL_dmaaudio.c: 在函数‘DMA_WaitAudio’中:
/usr/include/bits/select.h:37:5: 错误: ‘asm’中不可能的约束
     __asm__ __volatile__ ("cld; rep; " __FD_ZERO_STOS         \
     ^
/usr/include/sys/select.h:96:26: 附注: in expansion of macro ‘__FD_ZERO’
#define FD_ZERO(fdsetp)  __FD_ZERO (fdsetp)
                          ^
./src/audio/dma/SDL_dmaaudio.c:166:3: 附注: in expansion of macro ‘FD_ZERO’
   FD_ZERO(&fdset);
   ^
make: *** [build/SDL_dmaaudio.lo] 错误 1
这种现象有没有出现过,有解决方法吗?
 楼主| 发表于 2016-9-17 16:03:10 | 显示全部楼层
给力 你们也不说给点百纳币 奖励一下
这里补充一下:
       现在是按照默认配置方式安装移植freetype sdl以及拓展库 关于自定义路径以及其它参数特性剪裁移植带我研究一下 再来更新
发表于 2016-9-16 01:25:10 | 显示全部楼层
沙发!
谢谢楼主!学习中。。。。。。
发表于 2016-9-16 11:26:36 | 显示全部楼层
赞到家了。给力 给力!
发表于 2016-9-19 19:58:09 来自手机 | 显示全部楼层
好东西,话说怎么用
 楼主| 发表于 2016-9-20 10:25:06 | 显示全部楼层
tango_zhu 发表于 2016-9-19 19:58
好东西,话说怎么用

哈哈哈 妹子真萌 这是用来将字符生成位图图片的 第三方库 用到了就知道了
发表于 2016-9-20 10:36:30 | 显示全部楼层
这两条腿呢?
 楼主| 发表于 2016-9-20 16:30:51 | 显示全部楼层

顽皮 说点有关库文件的
发表于 2016-9-22 10:18:31 | 显示全部楼层
SDL库转出来的字幕背景透明怎么做啊,另外就是颜色转换,字幕黑白颜色的转换
发表于 2016-10-9 13:35:09 | 显示全部楼层

干嘛,,,,,,
发表于 2016-10-12 10:34:13 | 显示全部楼层
楼主,你./configure最后一个文件SDL_ttf-2.0.11的时候。有报configure: error: *** SDL version 1.2.4 not found!错误吗?
发表于 2016-10-12 11:26:04 | 显示全部楼层
发表于 2016-10-12 11:44:15 | 显示全部楼层
使用的是CC=arm-hisiv300-linux-gcc --host=arm-hisiv300-linux编译生成的bin、lib、include、share目录的相应文件,见附件。有需要的直接拿走。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2016-12-3 22:55:19 | 显示全部楼层

看看资料,学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

© 2008-2017 当前位置 易百纳技术社区论坛 返回 易百纳技术社区 ( 苏ICP备14036084 )   Powered by Discuz! X3.1
快速回复 返回顶部 返回列表