Freetype安装

首先确定系统目录 使用

echo 'main(){}' | arm-t113-gcc -E -v -

命令会列出头文件目录、库目录(LIBRARY_PATH)image-20260125170210977

文件目录

/home/ubuntu/tina-d1-h/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/include/fortify

库目录

/home/ubuntu/tina-d1-h/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/../lib/gcc/arm-openwrt-linux-muslgnueabi/6.4.1/../../../../arm-openwrt-linux-muslgnueabi/lib/

交叉编译的万能命令

./configure --host=arm-openwrt-linux-muslgnueabi --prefix=$PWD/tmp

make

mkae install

就可以在当前目录的 tmp 目录下看见 bin, lib, include 等目录,里面存有可执行程序、库、头文件

字库的链接Index of /releases/freetype/

libpng的链接libpng Home Page

zlib的链接zlib Home Site

freetype依赖于libpng,libpng又依赖于zlib

所以我们应该先编译zlib,在编译linbng,最后编译安装freetype

在编译freetype时,发现没有编译zlib

image-20260125173716354

先进行zlib库的编译

zlib不支持 --host 需要自己手动配置交叉工具

# 核心编译工具
export CC=$TOOLCHAIN_BIN/arm-openwrt-linux-muslgnueabi-gcc.bin
export CXX=$TOOLCHAIN_BIN/arm-openwrt-linux-muslgnueabi-g++.bin
# 库处理工具(原生本体,对应你的需求)
export AR=/home/ubuntu/tina-d1-h/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/../lib/gcc/arm-openwrt-linux-muslgnueabi/6.4.1/../../../../arm-openwrt-linux-muslgnueabi/bin/ar
export RANLIB=/home/ubuntu/tina-d1-h/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/../lib/gcc/arm-openwrt-linux-muslgnueabi/6.4.1/../../../../arm-openwrt-linux-muslgnueabi/bin/ranlib
./configure    --prefix=$PWD/tmp
make
mkae install

make时出现报错

image-20260125185632289

问题出在 ar 命令里出现了无效的短选项 -0

需要进入Makefile修改,修改半天一直报错,最后就直接用AI生成的这个代替的

vim Makefile

libz.a: $(OBJS)
        /home/ubuntu/tina-d1-h/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/arm-openwrt-linux-muslgnueabi/bin/ar rc libz.a adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o
        /home/ubuntu/tina-d1-h/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/arm-openwrt-linux-muslgnueabi/bin/ranlib libz.a

将tmp里面的include全部复制到文件目录

将tmp里面的lib全部复制到库目录

ubuntu@ubuntu1804:~/gk/zlib-1.3.1/tmp$ cd include/
ubuntu@ubuntu1804:~/gk/zlib-1.3.1/tmp/include$ cp * -rf //home/ubuntu/tina-d1-h/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/include/fortify
ubuntu@ubuntu1804:~/gk/zlib-1.3.1/tmp/include$ cd ..
ubuntu@ubuntu1804:~/gk/zlib-1.3.1/tmp$ cd lib/
ubuntu@ubuntu1804:~/gk/zlib-1.3.1/tmp/lib$ cp -drf * /home/ubuntu/tina-d1-h/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/../lib/gcc/arm-openwrt-linux-muslgnueabi/6.4.1/../../../../arm-openwrt-linux-muslgnueabi/lib/

再进行编译libpng库

还是报同样错误

就是用只有纯原生 ar 工具,才不会解析 GCC 的-O2等参数,这是解决该问题的唯一根本方式

export AR=/home/ubuntu/tina-d1-h/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/../lib/gcc/arm-openwrt-linux-muslgnueabi/6.4.1/../../../../arm-openwrt-linux-muslgnueabi/bin/ar
export RANLIB=/home/ubuntu/tina-d1-h/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/../lib/gcc/arm-openwrt-linux-muslgnueabi/6.4.1/../../../../arm-openwrt-linux-muslgnueabi/bin/ranlib

将tmp里面的include全部复制到文件目录

将tmp里面的lib全部复制到库目录

最后编译freetype

posted @ 2026-01-26 16:16  郭小胖  阅读(36)  评论(0)    收藏  举报