以FreeType为例来编写一个通用的Makefile文件

一、FreeType的使用
交叉编译就是在一个平台上生成另一个平台上可以执行的代码。
要进行交叉编译,需要在主机平台上安装对应的交叉编译工具链,然后使用这个交叉编译工具链对我们的源代码进行编译,最终生成在目标平台上可以允许的代码,最常见的交叉编译例子:
在Linux PC上,使用arm-linux-gcc编译器编译出在Linux ARM平台上运行的代码。

freetype库是一个完全开源、高质量且可移植的字体引擎,它提供统一的接口来访问多种字体文件,想要在Linux ARM平台上使用freetype库就需要对freetype进行交叉编译,首先需要将freetype-2.4.10.tar.bz2上传到Linux PC的/home/book/freetype目录下:

(1)解压
图片说明
执行tar xjf freetype-2.4.10.tar.bz2命令进行解压,生成freetype-2.4.10这个目录;
(2)配置
图片说明
......
图片说明
首先进入freetype-2.4.10这个目录中,然后执行./config --host=arm-linux命令进行配置;
(3)编译
图片说明
执行make命令进行编译;
(4)安装
图片说明
首先创建一个tmp目录,后面就将各种文件安装在该目录下;
图片说明
然后执行make DESTDIR=$PWD/tmp install命令进行安装,安装成功后在tmp目录的文件如下:
图片说明
图片说明
在include目录下是所有的头文件;
在lib目录下是所有的库文件,通常我们只会使用libfreetype.a(静态库)和libfreetype.so(动态库)两个库文件,但libfreetype.so -> libfreetype.so.6.9.0和libfreetype.so.6 -> libfreetype.so.6.9.0表示libfreetype.so和libfreetype.so.6都是链接文件,指向libfreetype.so.6.9.0这个真正的动态库文件。

二、通用Makefile文件的编写
图片说明
官方给出了C语言版本的代码来教我们如何使用freetype,代码位于example.c文件中,我们就以example.c为例来编写一个通用的Makefile文件,对所有的源文件进行编译来生成一个可执行文件,整个工程的框架如图所示:
图片说明
include: 用来存放头文件(该头文件对库文件中的函数进行声明);
lib: 用来存放库文件;
out: 用来存放生成的可执行文件;
src: 用来存放源文件和头文件(该头文件对源文件中的函数进行声明)。

全部评论

相关推荐

已经烂了:算法去制造业最少也要211,双非搞算法就是死路一条。至少我在的部门,算法工程师最低都是211毕业的,而且岗位极少。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务