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 

中间会出现错误如:

CentOS7下编译安装Mapnik Mapnik编译教程

编译一下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 

简单测试

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
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。