韦东山 数码相框 项目学习(三)freetype的移植

韦东山 数码相框 项目学习(三)freetype的移植

要把freetype移植到STM32MP157上,我们主要完成四步

  1. 源码下载解压
  2. 配置、编译
  3. 对应文件复制到对应目录

一、源码下载解压

源码的下载可以进入去https://freetype.org/这个网址进行下载,本次移植我们使用的是2.4.10版本,然后将下载下来的压缩包上传到服务器。

然后执行

tar -jxvf freetype-2.4.10.tar.bz2

进行解压,解压完成后,就会在当前目录下生成一个freetype-2.4.10目录,下一步我们需要进入到这个目录进行配置

二、配置、编译

进入到freetype-2.4.10目录,依次执行以下命令

./configure --host=arm-buildroot-linux-gnueabihf --prefix=$PWD/tmp
make
make install

执行完之后会在tmp目录下生成四个目录,我们需要把lib目录和include目录下的文件复制到我们编译工具链的对应目录下,还需要把lib目录下的库文件复制到开发板的/lib目录下,这样我们编译出来的程序才能在开发板上运行。

三、对应文件复制到对应目录

首先需要确定我们自己的编译工具链的目录是在哪里,这个在之前设置过了,我的编译工具链路径是

/home/tao/learn/100ask/100ask_stm32mp157_pro-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

要找到对应的include目录和lib目录,首先需要进入到上面这个目录

然后返回到上一层目录,也就是

/home/tao/learn/100ask/100ask_stm32mp157_pro-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/

下,然后使用find命令找到我们的stdio.h头文件

find -name 'stdio.h'

可以看到有以下输出

./arm-buildroot-linux-gnueabihf/include/c++/8.4.0/tr1/stdio.h
./arm-buildroot-linux-gnueabihf/sysroot/usr/include/bsd/stdio.h
./arm-buildroot-linux-gnueabihf/sysroot/usr/include/stdio.h
./arm-buildroot-linux-gnueabihf/sysroot/usr/include/bits/stdio.h

很明显,第三个才是我们所需要的头文件,也就是说,我们要把freetype编译出的include目录下的文件复制到

/home/tao/learn/100ask/100ask_stm32mp157_pro-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include/

这个目录下。

在复制之前,有些bug需要处理以下,我们需要把freetype编译生成的include目录下的freetype2/freetype目录给移动到上一层目录,因为在代码中包含的时候,访问的是freetype而不是freetype2/freetype

然后freetype2就是一个空目录了,可以把它删除掉

然后就可以正式开始复制了

进入到freetype的tmp目录下,执行

cp include/* /home/tao/learn/100ask/100ask_stm32mp157_pro-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include/ -rd

这样就把头文件复制过去了,接下来就是库文件的复制了。

找到了头文件目录,那么库文件目录也就很好找了,它就是和我们include目录同级的lib目录

/home/tao/learn/100ask/100ask_stm32mp157_pro-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/lib

我们再把动态库文件给复制到该目录下,由于lib目录下已经有了freetype的库,这里我们就不再演示了

最后,还需要把库文件复制到开发板,操作都大同小异,这里不再演示

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这份文档提供了FreeType 2函数库设计与实现的细节。本文档的目标是让开发人员更好的理解FreeType 2是如何组织的,并让他们扩充、定制和调试它。 首先,我们先了解这个库的目的,也就是说,为什么会写这个库: * 它让客户应用程序方便的访问字体文件,无论字体文件存储在哪里,并且与字体格式无关。 * 方便的提取全局字体数据,这些数据在平常的字体格式中普遍存在。(例如:全局度量标准,字符编码/字符映射表,等等) * 方便的提取某个字符的字形数据(度量标准,图像,名字,其他任何东西) * 访问字体格式特定的功能(例如,SFNT表,多重控制,OpenType轮廓表) Freetype 2的设计也受如下要求很大的影响: * 高可移植性。这个库必须可以运行在任何环境中。这个要求引入了一些非常激烈的选择,这些是FreeType2的低级系统界面的一部分。 * 可扩展性。新特性应该可以在极少改动库基础代码的前提下添加。这个要求引入了非常简单的设计:几乎所有操作都是以模块的形式提供的。 * 可定制。它应该能够很容易建立一个只包含某个特定项目所需的特性的版本。当你需要集成它到一个嵌入式图形库的字体服务器中时,这是非常重要的。 * 简洁高效。这个库的主要目标是只有很少cpu和内存资源的嵌入式系统。 这份文档的其他部分分为几个部分。首先,一些章节介绍了库的基本设计以及Freetype 2内部对象/数据的管理。 接下来的章节专注于库的定制和与这个话题关的系统特定的界面,如何写你自己的模块和如何按需裁减库初始化和编译。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值