freetype下载安装
下载:https://download.savannah.gnu.org/releases/freetype/
解压:tar -xvf freetype-2.4.10.tar.gz
进入freetype文件目录: cd freetype-2.4.10
执行: ./configure CC=arm-hisiv500-linux-gcc --host=arm-hisiv500-linux
编译:make && make install
上述命令敲击过后,会在/usr/local/目录下出现
这里用的是静态库,也可以使用动态库,都编译出来了
SDL下载安装
下载:http://www.libsdl.org/download-1.2.php
解压: tar -xvf SDL-1.2.15.tar.gz
进入SDL文件目录: cd SDL-1.2.15/
执行:
./configure CC=arm-hisiv500-linux-gcc --host=arm-hisiv500-linux --disable-alsa --disable-pulseaudio --enable-esd=no
编译与安装:
make && make install
SDL_ttf下载安装
下载:https://www.libsdl.org/projects/SDL_ttf/release/
下载的是SDL_ttf-2.0.11版本
解压:tar xvf SDL_tff.tar
./configure CC=arm-hisiv500-linux-gcc --host=arm-hisiv500-linux --with-freetype-prefix=/usr/local/ --with-sdl-prefix=/usr/local/
make && make intsall
使用库
编译测试程序
下面的测试程序,主要为了测试三个库是否可以使用
#include <stdio.h>
#include "SDL/SDL.h"
#include "SDL/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");
SDL_FreeSurface(text);
SDL_FreeSurface(temp);
TTF_CloseFont(font);
TTF_Quit();
return 0;
}
arm-hisiv500-linux-gcc -o osdTest osdTest.c -I ./include/ -L ./lib -lSDL_ttf -lfreetype -lSDL -lpthread -lm
另外还需要下载simhei.ttf,并放到板子上
将编译好的可执行程序放到板子上,运行后获得了一个bmp文件