下載mapnik,我選用的是Master的版本,Master版本需要glibc2.14+的支持,這個需要注意一下。
InstallationTroubleshooting 編譯安裝遇到問題匯總
git clone https://github.com/mapnik/mapnik.git
安裝必要的依賴
yum install boost-devel postgresql-devel proj-devel proj-epsg
擴展需要的依賴
yum install sqlite-devel libpng-devel libtiff-devel libjpeg-devel libicu-devel
編譯的時候,官方需求最少要有5GB(for g++)的內存,對於小內存的用戶(我當時只有2G)可能會出現內存不夠而異常退出的情況,如果出現以下狀況而退出的話:
g++: internal compiler error: Killed (program cc1plus)
我們可以臨時增加磁盤交換空間來臨時解決該問題
sudo dd if=/dev/zero of=/swapfile bs=64M count=16 sudo mkswap /swapfile sudo swapon /swapfile
然後在編譯完成後,在恢復到之前的狀態
sudo swapoff /swapfile sudo rm /swapfile
開始編譯
./configure make make install
中間會出現錯誤如:
編譯一下harfbuzz 參照如下修改
Harfbuzz not found
$ brew install harfbuzz...$ ./configure...Checking for C++ library harfbuzz... noCould 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
簡單測試
python import mapnik
如果出現類似的錯誤
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
添加一行內容:/usr/local/lib
然後保存退出,同時執行一下
ldconfig
如果沒有問題的話可以試一下渲染demo,會生成一些不同品質不同格式的圖片demo文件
python demo/python/rundemo.py
http://xxxxxx/Linuxjc/1156045.html TechArticle