VC下使用mapnik库函数的问题

在网上找到了一个介绍VC下使用mapnik库函数的方法,我试验了一下,程序倒是编译成功了,但是程序执行的时候内存报错,折腾了很久也没办法,问了一些人,说最好自己编译mapnik,我的情况可能是相关库版本不兼容导致的。

网上找到的方法如下:

一、在windows中安装mapnik

(一)安装条件

Windows XP或Vista

Python 2.5 - python.org

Mapnik 0.6.1 Binary Files (点击下载链接地址)

PROJ4 binary files, 如果你计划使用OGC的WMS服务,EPSG是必须的。(安装信息可以看下载的压缩包文件中“readme.txt”)

(二)安装步骤:

1、下载Mapnik binary

2、放置解压缩文件夹到“C:\ mapnik_0_6_1\”

3、设置您的系统和/或用户环境变量:

o 提示: 控制面板->系统->高级->环境变量

a. 添加“C:\ mapnik_0_6_1 \ lib” 到 PATH变量。

§ 注意:您可能还需要设置你的用户的PATH环境变量。

§ 如果变量PATH不存在,添加它。

§ 这项设置正确的话将允许绑定mapnik的Python发现mapnik.dll

b. 添加“C:\ mapnik_0_6_1 \site-packages”到PYTHONPATH变量。

§ 这项设置正确的话将允许Python发现绑定mapnik的Python

4、打开一个新的控制台运行“cmd”测试设置:

o 键入“路径”,以确保您的路径中包含“C:\ mapnik_0_6_1 \ lib”

5、运行“C:\ Python25 \ python.exe”,然后在Python中输入:

Import mapnik

o 如果你没有错误消息,您成功了!

o 如果你得到一个错误信息,请参见下面的故障排除

6、打开资源管理器,到“C:\ mapnik_0_6_1 \demo\Python”,双击rundemo.py

o 你应该看到几个demo.*文件输出

7、如果运行错误,请确认您已经安装Boost库和是否在环境变量中设置了正确的路径。

8、返回GettingStarted开始你第一个关于Mapnik的Python API的教程。

(三)故障排除

1、找不到Mapnik DLL文件

你得到一个这样的错误:

Can't find mapnik.dll

解决方法:请确保您正确的完成步骤3。

2、在Python中找不到Mapnik库

问题:当在Python中引入 mapnik库时得到这样的错误信息:

>>> import mapnik

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ImportError: No module named mapnik

解决方法:请确保你已正确完成步骤3.b中的把“site-packages”文件夹设置到“PYTHONPATH”环境变量中

3、未知的依赖项(windows环境下)找不到

问题:当在Python中引入 mapnik库时得到这样的错误信息:

[...snip...]

from _mapnik import *

ImportError: DLL load failed: This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.

解决方法:

· 您可能在使用一个老的的版本,需要安装Visual Studio 2008 Runtime Libraries (msvcrt90.dll从微软开发者网络 获得)。如果还没搞定它,你可能还缺少2005版本。

· 这个问题也可能会发生在一些新安装的系统中,缺少一些依赖项或某些DLL的版本不兼容。我遇到这这种情况时,不得不安装MSVC的依赖(vcredist_x86.exe)和在mapnik / lib文件夹下放置下载的msvcr90.dll。

· 通过Dependency Walker 对mapnik.dll的查看你可以得到更多的关于缺失和不兼容的信息。在64位系统,您必须使用32位版本。

二、vc下使用mapnik

参考:http://old.nabble.com/Mapnik%2BWin32%2BVisual-C%2B%2B-td25286445.html

(一)开发环境

Windows XP with sp2/sp3

Visual C++ 2008 Express Edition

(二)Mapnik安装步骤(请参考“一、在windows中安装mapnik”)

1、到 http://www.mapnik.org 下载 mapnik的 “win32 binaries”

2、安装Python2.5.4到“C:\Python25”下

3、根据“mapnik在windows下的安装”的说明安装mapnik到“D:\mapnik”

4、下载压缩包(mapnik-0.6.1.tar.bz2),解压到 “D:\mapnik”中,运行其目录下  \demo\python \rundemo.py 。没有错误的话(新的文件将被创建:demo.jpg, demo.png, demo256.png, map.xml)

(三)创建mapnik-0.6.1中的  \demo\c++  rundemo.cpp示例程序,步骤如下:

1、创建一个空的Visual C++ 2008 Express Edition项目(Win32 Console Application),在  生成——>配置管理器 中设置只创建“Release|Win32”项目。

2、加载文件rundemo.cpp到项目中

3、在  工具——>选项——>项目解决方案——>VC++ 中设置:

a、在“包含文件”中添加 D:\mapnik\include

b、在“库文件”中添加 D:\mapnik\lib

4、在 项目——>属性——>链接器——>附加依赖项中   添加:mapnik.lib

5、在 D:\mapnik\include 下添加:

a、 新建文件夹“boost”,添加从 boost_1_39_0.zip解压后的头文件 *.hpp (http://www.boost.org/users/download/)(BOOST库可能需要自己编译一下)

b、 新建文件夹“unicode”,添加从icu4c-4_2_1-Win32-msvc9.zip 解压后的头文件 *.hpp (http://icu-project.org/download/)

c、 直接添加File ft2build.h ,新建“freetype”文件夹,添加从 freetype-2.3.5.tar.gz解压的头文件 *.h (http://freetype.sourceforge.net/download.html#stable)

d、直接添加file ltdl.h 文件,从 libtool-1.5.26-bin.zip 解压后获得(http://gnuwin32.sourceforge.net/downlinks/libtool-bin-zip.php)

6、在 D:\mapnik\lib  中添加:

a、 mapnik.lib

b、 libboost_date_time-vc90-mt-gd-1_39.lib

c、 libboost_regex-vc90-mt-gd-1_39.lib

d、 libboost_thread-vc90-mt-gd-1_39.lib

7、在 C:\windows\system32 或者运行程序的Realease文件夹下添加:

a、mapnik.dll

b、icudt40.dll

c、icuuc40.dll

d、libxml2.dll

欢迎大家和我交流FreeBSD学习经验

我已经总结了一些学习笔记放在了我的网站上

tootoogo.9966.org

欢迎大家访问,同时我会不定期的在博客上写一些我的学习笔记,并不定期的把笔记下总结在我的网站上。

测试FreeBSD分类讨论

成功,测试FreeBSD分类讨论

第 22 页,共 22 页« 最新...10...1819202122