用Emsdk安装fontconfig

  1. 下载fontconfig源码
wget https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.14.2.tar.gz
tar -xvf fontconfig-2.14.2.tar.gz
cd fontconfig-2.14.2

下载依赖项:
sudo apt-get install gperf

emscripten编译时提示找不到freetype2,自带的版本太低,因此需要手动添加freetype环境:
export FREETYPE_CFLAGS="-I/home/wy/Documents/freetype-install/include"
export FREETYPE_LIBS="-L/home/wy/Documents/freetype-install/lib -lfreetype"
  1. 编译fontconfig

执行emconfigure ./configure,报错:

因此包含:export CFLAGS="-I/home/wy/freetype-install/include/freetype2"

再次执行,还是报错:

因此尝试两种方法:

方法1:

sudo apt-get install libexpat1-dev

找到expat的位置
export EXPAT_CFLAGS="-I/usr/include/x86_64-linux-gnu"
export EXPAT_LIBS="-L/usr/lib/x86_64-linux-gnu -lexpat"

路径没有错

再次执行emconfigure ./configure,依然报错找不到expat;
尝试了多个方法去包含expat路径,依然还是这样,因此考虑下载源码构建。

构建libexpat
wget https://github.com/libexpat/libexpat/releases/download/R_2_5_0/expat-2.5.0.tar.gz
ar -xvf expat-2.5.0.tar.gz 
cd expat-2.5.0
make install DESTDIR=/home/wy/Documents/expat-install

构建好了之后:
手动包含其路径,先包含freetype:
export FREETYPE_CFLAGS="-I/home/wy/Documents/freetype-install/include"
export FREETYPE_LIBS="-L/home/wy/Documents/freetype-install/lib -lfreetype"
export EXPAT_CFLAGS="-I/home/wy/Documents/expat-install/usr/local/include"
export EXPAT_LIBS="-L/home/wy/Documents/expat-install/usr/local/lib"
emconfigure ./configure

依然报错找不到expat,因此更换了一个方法。。。

方法2:

启动选择--enable-libxml2

1. 包含 FreeType 的路径:
export FREETYPE_CFLAGS="-I/home/wy/freetype-install/include/freetype2"
export FREETYPE_LIBS="-L/home/wy/freetype-install/lib -lfreetype"

2. 包含 libxml2头文件和库文件路径:
export LIBXML2_CFLAGS="-I/usr/include/libxml2"
export LIBXML2_LIBS="-lxml2"

3. 执行命令:
emconfigure ./configure --enable-libxml2

此时正常执行,但执行emmake make时报错:
fatal error: 'unicode/ucnv.h' file not found

尝试了许多办法,包含unicode/ucnv.h文件,但依然报错。

尝试过指定 pkg-config路径查找 ICU 的配置文件:

export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig"

这个方法不行,后续手动找到这个的位置,执行:

export C_INCLUDE_PATH="/usr/include/:$C_INCLUDE_PATH"

再次报错:

这个时候觉得是自带的libxml2跟emscirpten环境冲突了,因此考虑编译libxml2源码。

构建libxml2:

wget http://xmlsoft.org/sources/libxml2-2.9.12.tar.gz
tar -xvf libxml2-2.9.12.tar.gz
cd libxml2-2.9.12

下载这些,才能构建libxml2
sudo apt-get install autoconf libtool automake
./autogen.sh

构建:
./configure --with-sax1 --prefix=/home/wy/Documents/libxml2-install
make

报错:

构建libxml2时候报错,缺少SAX1,找了网上解决方案,就是说./configure的时候i加上选项--with-sax1,但之前加了这个选项,还是报错。

记载一下安装问题。有无大佬可以指点一下

接着更新一下:

查阅官网资料,猜测问题可能与pkg-config有关系,尝试将生成的freetype.pc和expat.pc文件复制到emsdk/upstream/emscripten/system/lib/pkgconfig/下,但依然不起作用。

相关问题的网站:

Issues · emscripten-core/emscripten · GitHub

ERROR: opus not found even though opus.pc exists in lib/pkgconfig folder · Issue #3280 · emscripten-core/emscripten · GitHub

手动设置pkg-config:

export PKG_CONFIG_PATH=/home/wangyao/tools/freetype-install/lib/pkgconfig:/home/wangyao/tools/expat-install/lib/pkgconfig:/home/wangyao/emsdk/upstream/emscripten/system/lib/pkgconfig

查看emconfigure的:emconfigure pkg-config

查看全局的:pkg-config --list-all
依然没有效果,路径是对的,可能不是这样设置PKG_CONFIG_PATH;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值