本文只要介绍fontconfig的交叉编译,以及其依赖库
Fontconfig官方介绍
Fontconfig is a library for configuring and customizing font access.
About Fontconfig
Fontconfig can:
discover new fonts when installed automatically, removing a common source of configuration problems.
perform font name substitution, so that appropriate alternative fonts can be selected if fonts are missing.
identify the set of fonts required to completely cover a set of languages.
have GUI configuration tools built as it uses an XML-based configuration file (though with autodiscovery, we believe this need is minimized).
efficiently and quickly find the fonts you need among the set of fonts you have installed, even if you have installed thousands of fonts, while minimzing memory usage.
be used in concert with the X Render Extension and FreeType to implement high quality, anti-aliased and subpixel rendered text on a display.
首先编译其依赖库
本文使用的交叉编译器
arm-himix200-linux
交叉编译freetype
https://downloads.sourceforge.net/freetype/freetype-2.10.4.tar.xz
./configure --with-zlib=no --with-png=no --enable-freetype-config \ CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc \ CXX=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++ \ --host=arm-himix200-linux \ --prefix=/opt/hisi-linux/x86-arm/lib/freetype make make install
交叉编译libxml2
ftp://xmlsoft.org/libxml2/libxml2-2.9.9.tar.gz
./configure --without-python --without-zlib \ CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc \ CXX=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++ \ --host=arm-himix200-linux \ --prefix=/opt/hisi-linux/x86-arm/lib/xml2 make make install
交叉编译uuid
https://nchc.dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz
./configure --prefix=/opt/hisi-linux/x86-arm/lib/uuid \ --host=arm-himix200-linux \ CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc \ CXX=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++ make make install
交叉编译expat
将以上几个依赖库中/lib/pkgconfig中的 .pc 文件拷贝到PKG_CONFIG_PATH所指定的目录里,
本文中为/opt/hisi-linux/x86-arm/arm-himix200-linux/target/lib/pkgconfig.
交叉编译fontconfig
https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.13.1.tar.bz2
./configure --with-arch=arm --disable-docs \ --host=arm-himix200-linux \ --prefix=/opt/hisi-linux/x86-arm/lib/fontconfig \ CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc \ CXX=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++ \ --with-expat=/opt/hisi-linux/x86-arm/lib/expat \ --with-expat-lib=-L/opt/hisi-linux/x86-arm/lib/expat/lib \ --with-expat-includes=-I/opt/hisi-linux/x86-arm/lib/expat/include \ --with-xmldir=/opt/hisi-linux/lib/libxml2/ \ --with-freetype-config=/opt/hisi-linux/x86-arm/lib/freetype/bin/freetype-config \ --with-pkgconfigdir=/opt/hisi-linux/x86-arm/arm-himix200-linux/target/lib/pkgconfig \ FREETYPE_LIBS=-L/opt/hisi-linux/x86-arm/lib/freetype/lib \ FREETYPE_CFLAGS=-I/opt/hisi-linux/x86-arm/lib/freetype/include/freetype2/freetype \ --enable-libxml2 \ UUID_LIBS=-L/opt/hisi-linux/x86-arm/lib/uuid/lib \ UUID_CFLAGS=-I/opt/hisi-linux/x86-arm/lib/uuid/include/uuid make make install
记得把fontconfig安装目录中的fontconfig.pc文件也拷贝到PKG_CONFIG_PATH方便其他软件查找.
至此,fontconfig库已经交叉编译完成.
结语
在我们的编程学习之旅中,理解是我们迈向更高层次的重要一步。然而,掌握新技能、新理念,始终需要时间和坚持。从心理学的角度看,学习往往伴随着不断的试错和调整,这就像是我们的大脑在逐渐优化其解决问题的“算法”。
这就是为什么当我们遇到错误,我们应该将其视为学习和进步的机会,而不仅仅是困扰。通过理解和解决这些问题,我们不仅可以修复当前的代码,更可以提升我们的编程能力,防止在未来的项目中犯相同的错误。
我鼓励大家积极参与进来,不断提升自己的编程技术。无论你是初学者还是有经验的开发者,我希望我的博客能对你的学习之路有所帮助。如果你觉得这篇文章有用,不妨点击收藏,或者留下你的评论分享你的见解和经验,也欢迎你对我博客的内容提出建议和问题。每一次的点赞、评论、分享和关注都是对我的最大支持,也是对我持续分享和创作的动力。