本文章涉及的内容在macos及linux下成功编译。
文章内容参考网上几篇文章并做了相应整理。
1、添加环境变量
vi ~/.bashrc 添加以下4句,
export PKG_CONFIG_PATH='/usr/local/lib/pkgconfig'
export LD_LIBRARY_PATH='/usr/local/lib':$LD_LIBRARY_PATH
export LDFLAGS="-L/usr/local/zlib/lib"
export CPPFLAGS="-I/usr/local/zlib/include"
保存并运行:
source ~/.bashrc
2、编译zlib库,如果已经存在可跳过
curl http://www.zlib.net/zlib-1.2.8.tar.gz -o zlib-1.2.8.tar.gz
tar -xvzf zlib-1.2.8.tar.gz && cd zlib-1.2.8
./configure --prefix=/usr/local/zlib
make
make install
3、编译png库,如果已经存在可跳过
curl ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng15/libpng-1.5.17.tar.gz -o libpng.tar.gz
tar -zxf libpng.tar.gz && cd libpng-1.5.17/
./configure --prefix=/usr/local
make
make install
4、编译jpeg库,如果已经存在可跳过
curl http://www.ijg.org/files/jpegsrc.v8d.tar.gz -o jpegsrc.tar.gz
tar -zxf jpegsrc.tar.gz && cd jpeg-8d/
./configure --disable-dependency-tracking --prefix=/usr/local
make
make install
5、编译pixman库,如果已经存在可跳过
curl http://www.cairographics.org/releases/pixman-0.28.2.tar.gz -o pixman.tar.gz
tar -zxf pixman.tar.gz && cd pixman-0.28.2/
./configure --prefix=/usr/local
make
make install
6、编译freetype库,如果已经存在可跳过
curl http://download.savannah.gnu.org/releases/freetype/freetype-2.4.11.tar.gz -o freetype.tar.gz
tar -zxf freetype.tar.gz && cd freetype-2.4.11/
./configure --prefix=/usr/local
make
make install
7、编译cairo
curl http://cairographics.org/releases/cairo-1.12.14.tar.xz -o cairo.tar.xz
tar -xJf cairo.tar.xz && cd cairo-1.12.14/
./configure --disable-dependency-tracking --without-x --prefix=/usr/local
make
make install
8、安装node-canvas
npm install -g canvas@1.0.0
在安装最新版本node-canvas时出错。这里我安装的是node-canvas 1.0.0版本。
可将下面内容保存成.sh文件,直接运行可自动执行上面的指令。我注释掉了所使用库文件的下载,你可根据自身需求进行修改。
export PKG_CONFIG_PATH='/usr/local/lib/pkgconfig'
export LD_LIBRARY_PATH='/usr/local/lib':$LD_LIBRARY_PATH
export LDFLAGS="-L/usr/local/zlib/lib"
export CPPFLAGS="-I/usr/local/zlib/include"
#curl http://www.zlib.net/zlib-1.2.8.tar.gz -o zlib-1.2.8.tar.gz
tar -xvzf zlib-1.2.8.tar.gz && cd zlib-1.2.8
./configure --prefix=/usr/local/zlib
make
make install
echo "###########################"
cd ..
#curl ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng15/libpng-1.5.18.tar.gz -o libpng.tar.gz
tar -zxf libpng.tar.gz && cd libpng-1.5.18/
./configure --prefix=/usr/local
make
make install
echo "###########################"
cd ..
#curl http://www.ijg.org/files/jpegsrc.v8d.tar.gz -o jpegsrc.tar.gz
tar -zxf jpegsrc.tar.gz && cd jpeg-8d/
./configure --disable-dependency-tracking --prefix=/usr/local
make
make install
echo "###########################"
cd ..
#curl http://www.cairographics.org/releases/pixman-0.28.2.tar.gz -o pixman.tar.gz
tar -zxf pixman.tar.gz && cd pixman-0.28.2/
./configure --prefix=/usr/local
make
make install
echo "###########################"
cd ..
#curl http://cairographics.org/releases/cairo-1.12.14.tar.xz -o cairo.tar.xz
tar -xJf cairo.tar.xz && cd cairo-1.12.14/
./configure --disable-dependency-tracking --without-x --prefix=/usr/local
make
make install
echo "###########################"
cd ..
#npm install -g canvas