- 下载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"
- 编译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
手动设置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;