在VMware虚拟机中编译文件的时候报错:找不到头文件ft2build.h
以下是报错内容,提示说找不到头文件ft2build.h
freetype_show_font.c:12:10: fatal error: ft2build.h: No such file or directory
#include <ft2build.h>
^~~~~~~~~~~~
compilation terminated.
在编译之前已经交叉编译了freetype,并且把这些文件安装到工具链中
原因是编译出freetype后,得到的ft2build.h是位于freetype2目录里, 我们把整个freetype2目录复制进了工具链里
对于这个问题的解决方式有两种
·包括头文件时,用的是“#include <ft2build.h>”,将其改成:#include<freetype2/ft2build.h>
·在虚拟机的文件夹中根据这个ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include路径,逐渐寻找符合要求的文件
如果你不知道toolchain在哪里,可以执行以下命令进行寻找,寻找时长会因你虚拟机的文件数量而受到一点影响,耐心等待结果出现即可
find -name ToolChain
如下为最终include文件的路径,在此处open in terminal打开终端
执行如下命令, 把工具链里 incldue/freetype2/*.h 复制到上一级目录
mv freetype2/* ./
之后继续执行之前的编译命令即可,这时候会发现没有报错了
如果编译返回告知说某些函数没有实现,这并不需要我们自己实现
编译的命令结尾可以加上 -lfreetype,以此自动解决某些函数没有实现的问题