InstallationTroubleshooting 編譯安裝遇到問(wèn)題匯總
git clone https://github.com/mapnik/mapnik.git
安裝必要的依賴
yum install boost-devel postgresql-devel proj-devel proj-epsg
擴(kuò)展需要的依賴
yum install sqlite-devel libpng-devel libtiff-devel libjpeg-devel libicu-devel
編譯的時(shí)候,官方需求最少要有5GB(for g++)的內(nèi)存,對(duì)于小內(nèi)存的用戶(我當(dāng)時(shí)只有2G)可能會(huì)出現(xiàn)內(nèi)存不夠而異常退出的情況,如果出現(xiàn)以下狀況而退出的話:
g++: internal compiler error: Killed (program cc1plus)
我們可以臨時(shí)增加磁盤交換空間來(lái)臨時(shí)解決該問(wèn)題
sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile
然后在編譯完成后,在恢復(fù)到之前的狀態(tài)
sudo swapoff /swapfile
sudo rm /swapfile
開始編譯
./configure
make
make install
中間會(huì)出現(xiàn)錯(cuò)誤如:
編譯一下harfbuzz 參照如下修改
Harfbuzz not found
$ brew install harfbuzz
...
$ ./configure
...
Checking for C++ library harfbuzz... no
Could not find required header or shared library for harfbuzz
...
Exiting... the following required dependencies were not found:
- harfbuzz (HarfBuzz text shaping library | configure with HB_LIBS HB_INCLUDES)
Solution: HB_LIBS and HB_INCLUDES are directories, not cflags/ldflags, and HB_INCLUDES needs not to include the “harfbuzz” directory itself. If pkg-config says:
$ pkg-config --libs --cflags harfbuzz
-I/usr/local/Cellar/harfbuzz/0.9.35_1/include/harfbuzz -L/usr/local/Cellar/harfbuzz/0.9.35_1/lib -lharfbuzz
what you actually need is 修改配置文件為,直接指定HB_LIBS,HB_INCLUDES
$ ./configure HB_LIBS=/usr/local/Cellar/harfbuzz/0.9.35_1/lib HB_INCLUDES=/usr/local/Cellar/harfbuzz/0.9.35_1/include
簡(jiǎn)單測(cè)試
如果出現(xiàn)類似的錯(cuò)誤
ImportError: libmapnik.so.3.0: cannot open shared object file: No such file or directory
需要手工添加一下so的位置
vim /etc/ld.so.conf.d/mapnik-x86_64.conf
添加一行內(nèi)容: /usr/local/lib
然后保存退出,同時(shí)執(zhí)行一下
如果沒(méi)有問(wèn)題的話可以試一下渲染demo,會(huì)生成一些不同品質(zhì)不同格式的圖片demo文件
python demo/python/rundemo.py