场景介绍:开发板使用的是韦东山老师的inx6ull pro开发板,虚拟机是韦东山老师课程配套的,目前的学习是基于领绿的linux驱动测试程序
当然如果你使用其他的版本的 虚拟机 ,其他型号的 开发板 ,其他的 教程 学习,亦或是开发其他内容,希望这篇文章能对你起到帮助
在开发驱动程序的时候出现了一个问题,当我写好代码准备执行 make -j16 进行编译的时候,出现了报错
/home/book/imx6ull/xf_project/ui/lvgl/src/extra/libs/freetype/lv_freetype.c:12:10: fatal error: ft2build.h: No such file or directory
#include "ft2build.h"
^~~~~~~~~~~~
compilation terminated.
ui/lvgl/CMakeFiles/lvgl.dir/build.make:1041: recipe for target 'ui/lvgl/CMakeFiles/lvgl.dir/src/extra/libs/freetype/lv_freetype.c.o' failed
make[2]: *** [ui/lvgl/CMakeFiles/lvgl.dir/src/extra/libs/freetype/lv_freetype.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 18%] Building C object ui/lvgl/CMakeFiles/lvgl.dir/src/extra/lv_extra.c.o
[ 18%] Building C object ui/lvgl/CMakeFiles/lvgl.dir/src/extra/others/fragment/lv_fragment.c.o
CMakeFiles/Makefile2:149: recipe for target 'ui/lvgl/CMakeFiles/lvgl.dir/all' failed
make[1]: *** [ui/lvgl/CMakeFiles/lvgl.dir/all] Error 2
Makefile:135: recipe for target 'all' failed
make: *** [all] Error 2
报错内容如下
首先我进行了检查,是否 makefile 缺少库的链接
实际上并没有
然后想起一个东西
之前我把freetype文件下的 include 文件拷贝到 交叉编译工具链的路径 include 文件夹下,但是freetype的头文件有两层包含,没有办法及时的访问到头文件
所以我们需要将其目录进行移动,将目录下的所有文件移动到上一级目录
对于我的情况来说是这样:
下边是我的交叉编译工具链存放的freetype的内容
/home/book/imx6ull/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include/freetype2
大家根据自己存放的交叉编译工具链位置路径需要进行个别更改mv /home/book/imx6ull/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include/freetype2/* /home/book/imx6ull/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include
这个mv移动操作就是将freetype/*下的所有文件移动到上一级目录include/下
完成这个步骤之后,再次编译就会发现
编译成功了