Loading...
首页问答详情

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

 
localhost
localhost  发布于  2016-09-14 16:58:48
采纳率 0%
16个问答
本帖最后由 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 目录下。

文件: freetype-2.4.10.tar.gz
下载
文件: SDL_ttf-2.0.11.tar.gz
下载
文件: SDL-1.2.15.tar.gz
下载
我来回答
13193
14
9
回答
48个
Cybers 发布于2016-09-16 01:25:10
沙发!
谢谢楼主!学习中。。。。。。
0
cowboy 发布于2016-09-16 11:26:36
赞到家了。给力 给力!
0
localhost 发布于2016-09-17 16:03:10
{:2_36:}给力 你们也不说给点百纳币 奖励一下
这里补充一下:
       现在是按照默认配置方式安装移植freetype sdl以及拓展库 关于自定义路径以及其它参数特性剪裁移植带我研究一下 再来更新
0
localhost 发布于2016-09-20 10:25:06
[quote][url=forum.php?mod=redirect&goto=findpost&pid=38002&ptid=12659]tango_zhu 发表于 2016-9-19 19:58[/url]
好东西,话说怎么用[/quote]

{:3_64:}哈哈哈 妹子真萌 这是用来将字符生成位图图片的 第三方库 用到了就知道了
0
rafael_wl 发布于2016-09-20 10:36:30
这两条腿呢?:lol
0
localhost 发布于2016-09-20 16:30:51
[quote][url=forum.php?mod=redirect&goto=findpost&pid=38043&ptid=12659]rafael_wl 发表于 2016-9-20 10:36[/url]
这两条腿呢?[/quote]

{:3_57:}顽皮 说点有关库文件的
0
wonrowl 发布于2016-09-22 10:18:31
SDL库转出来的字幕背景透明怎么做啊,另外就是颜色转换,字幕黑白颜色的转换:)
0
jp1017 发布于2016-10-09 13:35:09
[quote][url=forum.php?mod=redirect&goto=findpost&pid=38043&ptid=12659]rafael_wl 发表于 2016-9-20 10:36[/url]
这两条腿呢?[/quote]

干嘛,,,,,,
0
一只大犀牛 发布于2016-10-12 10:34:13
楼主,你./configure最后一个文件SDL_ttf-2.0.11的时候。有报configure: error: *** SDL version 1.2.4 not found!错误吗?
0
一只大犀牛 发布于2016-10-12 11:26:04
已解决,参见[url]http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=11465&page=2[/url]
0
一只大犀牛 发布于2016-10-12 11:44:15
使用的是CC=arm-hisiv300-linux-gcc --host=arm-hisiv300-linux编译生成的bin、lib、include、share目录的相应文件,见附件。有需要的直接拿走。
0
小飞侠_fq 发布于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
这种现象有没有出现过,有解决方法吗?
0
accountcmn2015 发布于2016-12-03 22:55:19

看看资料,学习一下
0
cy_ygs 发布于2016-12-05 13:07:31
好资料,学习
0
fishliu_2000 发布于2017-06-08 18:42:11
为什么我刚花了一个百纳币购买附件,结果怎么下载不下来呢?
0
fishliu_2000 发布于2017-06-08 19:45:14
为什么下载下来的SDL还是编译失败呢?到底是哪里的编译器出问题了呀?
0
qq328848298 发布于2017-07-03 20:59:58
"最后,将  include  和   lib(  libSDL.so,  libSDL_ttf.so,  libfreetype.so) 拷贝到相应的应用工程的目录中 并修改Makefile规则"
请问这里的 Makefile规则是如何修改的,我make 程序时候报如下错误:
/opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/../lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/../../../../arm-hisiv300-linux-uclibcgnueabi/bin/ld: warning: libz.so.1, needed by ./lib/libfreetype.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/../lib/gcc/arm-hisiv300-linux-uclibcgnueabi/4.8.3/../../../../arm-hisiv300-linux-uclibcgnueabi/bin/ld: warning: libiconv.so.2, needed by ./lib/libSDL.so, not found (try using -rpath or -rpath-link)
./lib/libfreetype.so:对‘inflate’未定义的引用
./lib/libfreetype.so:对‘inflateReset’未定义的引用
./lib/libfreetype.so:对‘inflateInit2_’未定义的引用
./lib/libfreetype.so:对‘inflateEnd’未定义的引用
0
myn0921 发布于2017-07-04 13:04:21
看看资料,学习一下
0
hero 发布于2017-08-03 18:36:55


看看资料,学习一下
0
feiyashan 发布于2017-08-17 11:23:13
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39372&ptid=12659]小飞侠_fq 发表于 2016-10-13 16:11[/url]
libtool: compile:  arm-hisiv300-linux-gcc -g -O2 -I./include -D_GNU_SOURCE=1 -fvisibility=hidden -I/ ...[/quote]

我也出现这个问题,解决了吗
0

Markdown 语法

  • 加粗 **内容**
  • 斜体 *内容*
  • 删除线 ~~内容~~
  • 引用 > 引用内容
  • 代码 `代码`
  • 代码块 ```编程语言↵代码```
  • 链接 [链接标题](url)
  • 无序列表 - 内容
  • 有序列表 1. 内容
  • 缩进 内容
  • 图片 ![alt](url)

Markdown 语法

  • 加粗 **内容**
  • 斜体 *内容*
  • 删除线 ~~内容~~
  • 引用 > 引用内容
  • 代码 `代码`
  • 代码块 ```编程语言↵代码```
  • 链接 [链接标题](url)
  • 无序列表 - 内容
  • 有序列表 1. 内容
  • 缩进 内容
  • 图片 ![alt](url)
+ 添加网盘链接/附件
或将文件直接拖到这里
悬赏:
EBC
网盘
* 网盘链接:
* 提取码:
悬赏:
EBC
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
数据导入
* 昵称
* 密码
如有疑问请联系易百纳客服微信: x460910098
取消
提交
易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区
取消
确定
在专栏模块发布专栏,可获得其他E友的打赏
回答悬赏问答,被题主采纳后即可获得悬赏金
在上传资料时,有价值的资料可设置为付费资源
达到一定金额,收益即可提现~
收益也可用来充值ebc,下载资料、兑换礼品更容易