最近一个需求是往生成的录像文件中加入显示时间,这里的开发是基于海思平台(Hi3521D),所以实际上就是往编码通道贴OSD,这里先介绍freetype、SDL、SDL_TTL这三个库在海思平台上的编译。
1、freetype、SDL、SDL_TTL源码的链接: https://github.com/As772309423/freetype-SDL-SDL_TTL
下载完源码之后,在ubuntu中创建一个目录(命名随意,我这里命名为font),把下载好的3个安装包都在同一个目录中,有利于后续的编译和开发。
注意:以下所有的步骤都最好先先换到root用户后,再进行编译,否则最后很可能会make 或者 make install出错!!!
打开teminal终端,跳转到font目录,对freetype安装包进行解压,解压完后进入freetype目录;
执行: ./configure CC=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin/arm-hisiv500-linux-gcc --host=arm-hisiv500-linux --enable-shared=no --enable-static=yes (这里的CC需要填写海思编译链的绝对路径, 这里全都编译成了静态库,如果需要编译成动态库,则改成–enable-shared=yes --enable-static=no);
make;
make成功后执行make install。
打开teminal终端,跳转到font目录,对SDL安装包进行解压,解压完后进入SDL目录;
打开teminal终端,跳转到font目录,对SDL_TTL安装包进行解压,解压完后进入SDL_TTL目录;
我已经参考网上的一些博客写了一个test.c和Makefile,放到了 https://github.com/As772309423/freetype-SDL-SDL_TTL ,你们只要把Makefile中各个库的include目录以及生成的静态库(或动态库)路径改对,编译就没问题。
freetype、SDL、SDL_TTL这个三个编译出来的静态库(或动态库)可能会隐藏起来,可以用find ./font -name “ .a ” 找出库的所在目录,然后用chmod 777 库所在目录 -R,就能找到该库了,最后建议创建一个目录把库放一起,方便编译。