Hi3516a移植SDL+FreeType+SDL_ttf
SDL+FreeType+SDL_ttf库编译过程
freeType编译过程
- 解压:
tar -xvf freetype-2.4.10.tar.gz
- 进入freeType目录:
./configure CC=arm-hisiv500-linux-gcc --host=arm-hisiv500-linux
- 1
make
make install
SDL编译过程
- 解压:
tar -xvf SDL-1.2.15.tar.gz
- 进入SDL目录:
./configure CC=arm-hisiv500-linux-gcc --host=arm-hisiv500-linux --disable-alsa --disable-pulseaudio --enable-esd=no
- 1
出现问题1:
./src/audio/esd/SDL_esdaudio.c:30:17: fatal error: esd.h: 没有那个文件或目录
- 1
解决方法1:
加上--enable-esd=no
,这个错误好像是音频相关的错误,这里直接关掉音频。
- make
- make install
SDL_ttf编译过程
- 解压:
tar xvf SDL_ttf-2.0.11.tar.gz
- 进入SDL_ttf-2.0.11目录:
./configure CC=arm-hisiv500-linux-gcc --host=arm-hisiv500-linux
- 1
若上述过程成功,会在/usr/local目录下生成相应文件:
在/usr/local目录下执行tree -L 2
(ps:有时间要研究下tree命令),结果如下:
.
├── bin
│ ├── freetype-config
│ └── sdl-config
├── etc
├── games
├── 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
│ ├── python2.7
│ └── python3.5
├── man -> share/man
├── sbin
├── share
│ ├── aclocal
│ ├── ca-certificates
│ ├── emacs
│ ├── fonts
│ ├── man
│ ├── sgml
│ └── xml
└── src
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 拷贝生成sdl库
mkdir -C /opt/sdl_lib
cd /opt/sdl_lib
cp /usr/local/include/ ./ -rf
cp /usr/local/lib/ ./ -rf
- 1
- 2
- 3
- 4
测试
ps:这个程序不是我写的,感谢作者Sues
/*************************************************************************> File Name: test.c> Author: Sues> Mail: sumory.kaka@foxmail.com > Created Time: 2017年02月28日 星期二 21时47分05秒************************************************************************/#include <stdio.h>
#include "SDL.h"
#include "SDL_ttf.h"int main(int argc, const char *argv[])
{
char * pstr = "hello";
SDL_PixelFormat *fmt;
TTF_Font *font;
SDL_Surface *text, *temp; if (TTF_Init() < 0 )
{
fprintf(stderr, "Couldn't initialize TTF: %s\n", SDL_GetError());
SDL_Quit();
} font = TTF_OpenFont("./simhei.ttf", 48);
if ( font == NULL )
{
fprintf(stderr, "Couldn't load %d pt font from %s: %s\n", 18, "ptsize", SDL_GetError());
} SDL_Color forecol = { 0xff, 0xff, 0xff, 0xff };
text = TTF_RenderUTF8_Solid(font, pstr, forecol); fmt = (SDL_PixelFormat*)malloc(sizeof(SDL_PixelFormat));
memset(fmt,0,sizeof(SDL_PixelFormat));
fmt->BitsPerPixel = 16;
fmt->BytesPerPixel = 2;
fmt->colorkey = 0xffffffff;
fmt->alpha = 0xff; temp = SDL_ConvertSurface(text,fmt,0);
SDL_SaveBMP(temp, "save.bmp"); free(fmt);
SDL_FreeSurface(text);
SDL_FreeSurface(temp);
TTF_CloseFont(font);
TTF_Quit(); return 0;
}
编译命令:
arm-hisiv500-linux-gcc test.c `sdl-config --cflags --libs` -I/opt/sdl_lib/include -I/opt/sdl_lib/include/SDL -L/opt/sdl_lib/lib -lSDL -lSDL_ttf -Wl,-rpath -o test
在开发板上执行test,会生成save.bmp,打开后可以发现是Hello! 注意:执行需要
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sdl_lib/lib #/opt/sdl_lib/lib目录是我存放动态库文件的地方
# 同时需要在test文件下防止simhei.ttf文件,这样才能找到字体
总结
参考的是如下博主的资源,感谢这位博主的分享! 参考链接
番外
因为BMP图片不能设置透明,所以显示的图在视频帧上会导致视频的背景是黑色的,而且无法去除。这个问题我纠结了好久,最后也是在易百纳论坛找到的解决方法! 重点在于zhuangweiye大神的回答:
s32Ret = SAMPLE_RGN_UpdateCanvas("sys_time.bmp", &stBitmap, HI_TRUE, 0x8000, &stSize, stCanvasInfo.u32Stride, stRgnAttrSet.unAttr.stOverlayEx.enPixelFmt);
有时间再把区域+SDL的方法显示位图这一部分搞上来,暂时还是写写编译的东西吧!
- 1
- 2
- 1
- 2
- 1
Hi3516a移植SDL+FreeType+SDL_ttf相关推荐
- Hi3519V101移植SDL+FreeType+SDL_ttf
目录 文章目录 目录 前言 源码下载 SDL+FreeType+SDL_ttf库编译过程 freeType编译过程 SDL编译过程 SDL_ttf编译过程 测试 总结 番外 前言 刚开始接触海思的时候 ...
- ARM Linux下编译freetype、sdl、sdl_ttf
当前使用环境 开发平台:ubuntu18.04.1 x86_64 海思硬件:GK7605 交叉编译工具链:arm-gcc6.3-linux-uclibceabi-(其他平台及工具链类似) 1.下载库及 ...
- SDL使用SDL_ttf显示文字
搞了一天终于成功显示了,网上找了好多资料都不能正常显示,出现各种异常,最后终于用这种方式搞定了 先看显示效果 备注一下: 两个库的版本分别为SDL1.3.0.0 SDL_ttf-2.0.11 编程 ...
- 海思osd+freetype+SDL+SDL_ttf编译成功后,Makefile的编写
请先移步我的上一篇转载博文http://blog.csdn.net/qq_26671365/article/details/78974661,这里先感谢一下博文的原创者,使我受益匪浅. 这里假设你已经 ...
- SDL及扩展库在ARM-Linux 完整移植
SDL的正确运行需要大量的支持库 1.编译安装支持库 在ARM-LINUX编译SDL之前.需要编译如下安装库. 常见的库的iconv,zlib,freetype等都要 SDL支持库的移植参见.我的博客 ...
- Hi3516a平台实现osd文字处理
由于Hi3516a平台在实现osd文字处理的时候,不支持动态添加时间戳.比较常用的方法是采用freetype.SDL.SDl_ttf这个三个开源库,配合region(区域管理)方式实现文字叠加.本文主 ...
- SDL以及扩展库的交叉编译过程简介
下面我介绍一下SDL以及SDL的扩展库在arm11上的交叉编译 在这里我将SDL 交叉编译的相关都安装在/opt/arm目录下 相关简介: SDL官方网站 http://www.libsdl.org/ ...
- 最简单的基于FFmpeg的移动端例子附件:SDL Android HelloWorld
===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...
- GUI 图片显示(SDL 多媒体开发库)——基于 rt-smart 微内核操作系统
目录 SDL 跨平台多媒体开发库简介 快速体验 rt-smart:GUI SDL SDL GUI 开发环境搭建及演示 硬件环境搭建 软件环境搭建 1.下载 AR-Pi Smart SDK 2.下载和安 ...
最新文章
- 【Micropython】发光二极管手工制作炫彩跑马灯
- 用户体验的76个体验点
- JAVA基础针对自己薄弱环节总结02(循环)
- Top的VIRT是什么
- 傻妞机器人老版安装教程
- 基于Opencv的几种立体匹配算法+ELAS
- java p3c_阿里p3c(代码规范,eclipse插件、模版,idea插件)
- java javaw 命令区别_java 和javaw 的区别
- 操作ADS1115进行4个通道AD值的读取
- [iOS Animation]-CALayer 变换-灭点
- Python实用功能之pdf文件转png图片数据
- sendgrid html text,使用SendGrid发送电子邮件
- MATLAB/ArcGIS读取nc数据并进行可视化
- 树莓派4安装Debian10
- vue3使用箭头函数导入异步组件报错Invalid VNode type: undefined的解决方案
- 计算机 图像处理 ei 期刊,【EA-ISET协会】中科院3区视觉图像处理类SCIEI源刊征稿...
- 冒牌网站提供假冒卡巴斯基KIS7.0下载
- 【无标题】关于机械版CAD零件序号乱了重新排序的问题
- java file available方法的一些注意点
- 计算机64位地址总线,64位CPU和数据/地址总线的关系