【Linux 第三方库】 linux 交叉编译fontconfig,freetype,libxml2,uuid

简介: 【Linux 第三方库】 linux 交叉编译fontconfig,freetype,libxml2,uuid


本文只要介绍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

交叉编译dbus

将以上几个依赖库中/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库已经交叉编译完成.

结语

在我们的编程学习之旅中,理解是我们迈向更高层次的重要一步。然而,掌握新技能、新理念,始终需要时间和坚持。从心理学的角度看,学习往往伴随着不断的试错和调整,这就像是我们的大脑在逐渐优化其解决问题的“算法”。

这就是为什么当我们遇到错误,我们应该将其视为学习和进步的机会,而不仅仅是困扰。通过理解和解决这些问题,我们不仅可以修复当前的代码,更可以提升我们的编程能力,防止在未来的项目中犯相同的错误。

我鼓励大家积极参与进来,不断提升自己的编程技术。无论你是初学者还是有经验的开发者,我希望我的博客能对你的学习之路有所帮助。如果你觉得这篇文章有用,不妨点击收藏,或者留下你的评论分享你的见解和经验,也欢迎你对我博客的内容提出建议和问题。每一次的点赞、评论、分享和关注都是对我的最大支持,也是对我持续分享和创作的动力。

目录
相关文章
|
8月前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
370 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
8月前
|
存储 算法 编译器
【Linux 应用开发 】交叉编译的浮点数处理问题:从表象到底层原理的探索与解决
【Linux 应用开发 】交叉编译的浮点数处理问题:从表象到底层原理的探索与解决
172 1
|
8月前
|
Unix Linux Shell
FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库
在Linux环境下交叉编译Android所需的FFmpeg so库,首先下载`android-ndk-r21e`,然后解压。接着,上传FFmpeg及相关库(如x264、freetype、lame)源码,修改相关sh文件,将`SYSTEM=windows-x86_64`改为`SYSTEM=linux-x86_64`并删除回车符。对x264的configure文件进行修改,然后编译x264。同样编译其他第三方库。设置环境变量`PKG_CONFIG_PATH`,最后在FFmpeg源码目录执行配置、编译和安装命令,生成的so文件复制到App工程指定目录。
380 9
FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库
|
7月前
|
Linux
Linux交叉编译+粤嵌LCD实现三色图
Linux交叉编译+粤嵌LCD实现三色图
|
5月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
225 3
|
5月前
|
Linux Python
Linux离线安装Python第三方库Requests
本文介绍了在无法连接外网的Linux服务器上离线安装Python第三方库Requests的过程,包括下载依赖包、解决依赖问题并成功安装的步骤。
593 0
|
8月前
|
安全 Linux Android开发
FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
该文介绍了如何在Linux服务器上交叉编译Android的FFmpeg库以支持HTTPS视频播放。首先,从GitHub下载openssl源码,解压后通过编译脚本`build_openssl.sh`生成64位静态库。接着,更新环境变量加载openssl,并编辑FFmpeg配置脚本`config_ffmpeg_openssl.sh`启用openssl支持。然后,编译安装FFmpeg。最后,将编译好的库文件导入App工程的相应目录,修改视频链接为HTTPS,App即可播放HTTPS在线视频。
151 3
FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
|
7月前
|
Rust Linux iOS开发
Rust 交叉编译 macOS 为 Linux 和 Windows
Rust 交叉编译 macOS 为 Linux 和 Windows
301 0
|
7月前
|
Linux 编译器 C语言
编译Linux内核:基础、重要性和交叉编译方法
Linux内核作为操作系统的心脏,负责管理计算机的硬件资源,同时也是运行所有其他程序的基础。理解如何编译Linux内核对于系统管理员、开发者乃至高级用户来说都是一项极其宝贵的技能。本文将介绍编译Linux内核的基本知识、编译的重要性、具体步骤以及交叉编译的概念。
477 0
|
8月前
|
JSON Ubuntu Linux
LuaJit交叉编译移植到ARM Linux
LuaJit交叉编译移植到ARM Linux
198 1