Freetype安装
首先确定系统目录 使用
echo 'main(){}' | arm-t113-gcc -E -v -
命令会列出头文件目录、库目录(LIBRARY_PATH)
文件目录
/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

先进行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时出现报错

问题出在 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

浙公网安备 33010602011771号