freetype
freetype 依赖于 libpng,libpng 又依赖于 zlib。所以先编译安装 zlib,再编译安装 libpng,最后编译安装 freetype。
问题一:zlib安装时需要使用交叉编译器
跟着正点原子的应用开发手册安装zlib,直接参照手册上执行 ./configure, make, make install 后安装编译libpng时会报错,说找不到zlib库。因为执行 ./configure时默认使用了GCC编译器,但我们需要使用交叉编译器arm-linux-gnueabihf, 改为 CC=arm-linux-gnueabihf-gcc ./config 即可正确安装。
问题二:库文件移植到开发板上后链接关系丢失
参照正点原子的应用开发手册安装zlib,libpng,freetype 在 /home/ly/linux/tools/ 下的 alib、libpng、freetype 目录中,然后将这几个目录下的lib文件中的文件移植到开发板的/usr/lib/目录下,注意链接关系。使用tftp移植到开发板上之后发现不存在链接关系了。手动使用 ln -s xxx(源文件) xxx(链接文件) 建立链接关系。
问题三:为了编程中使用方便,参照韦东山老师的应用开发手册,将zlib,libpng,ferrtype的include、lib中的文件都复制到了交叉编译工具的头文件和库文件路径中
首先确定交叉编译工具包含的头文件路径和库文件路径,使用下面的命令:echo 'main(){}' | arm-linux-gnueabihf-gcc -E -v -
然后在分别使用:
cp include/* -rf xxx(头文件路径)
cp lib/* -rfd xxx(库文件路径) ,其中 -d 表示复制时保留文件的链接关系
将zlib、libpng、freetype的头文件和库文件移动到交叉编译工具包含的头文件和库文件路径中。
问题四:freetype在使用时为了方便直接使用 #include<ft2build.h>,把工具链里 incldue/freetype2/.h 复制到上一级目录
先cd 进入到头文件的路径, 然后执行命令 sudo mv freetype2/ ./
问题五:编译韦东山老师的例程时,使用arm-linux-gnueabihf-gcc -o freetype_show_font freetype_show_font.c -lfreetype 时报错
应该是安装的交叉的编译工具中没有自带zlib,而韦东山老师使用的交叉编译工具中已经自带了zlib库,因此需要使用-lz链接zlib库
本博客仅用于记录自己学习过程中遇到的问题以及解决方案。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)