VS2008 + QGIS1.7.1试验
今天试验了一下。结果算是成功了吧。显示Generate done,生成了。但是提示了一个“SVN version不明确”的错误提示,应该无大碍吧。但是打开Build成的.sln也没看出有啥不妥。
用CMake先Configure,然后Generate,如下图所示:

提示框的内容:
Quantum GIS version: 1.7.1 Wroclaw (10701)
Found Proj: D:/My Documents/Visual Studio 2008/Projects/proj-4.7.0/proj-4.7.0/src/proj_i.lib
Found Expat: G:/expat-2.0.1-beta2/expat-2012-03-06/lib/libexpat.lib
Found GEOS: D:/My Documents/Visual Studio 2008/Projects/geos-3.2.2/geos-3.2.2/source/geos_c_i.lib
Found GDAL: C:/warmerda/bld/lib/gdal_i.lib
Found Qwt: G:/qwt-5.2.1/qwt-5.2.1/lib/qwt5.lib
Pedantic compiler settings enabled
Found Python executable: G:/Python27/python.exe
Found Python version: 2.7.5
Found Python library: G:/Python27/libs/python27.lib
Found SIP version: 4.14.4
Found PyQt4 version: 4.10
txt2tags not found - disabled
Configuring done
Generating done
CMake Error: Unknown Target referenced : svnversion
CMake Error: Target: qgis_core depends on unknown target: svnversion
用VS2008打开编译成功的工程解决方案.sln如下图所示:

>>GDAL
>>SQLite3
>>QGIS QGIS是一个基于跨平台的图形工具Qt,使用C++开发的一个用户界面友好、跨平台的开源版桌面地理信息系统。
>>SharpMap
总结:QGIS官方只提供QGIS源码,但是QGIS是依赖N个包的,也就是参考类库,那么每一个版本的QGIS发布时所依赖的参考类库版本必须一致才能编译成功,也就是在CMakeLists.txt中的参考变量,参考变量即你按照官方依据的版本下好的类库存放的位置,只有设置好CMake的Configure才能通过,才能生成.sln的VS项目文件,然后才能进行开发编译等等一系列的二次开发工作。
涉及软件:
CMake - 生成器 他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性。
flex - 词法分析器生成工具。
bison - 语法分析器生成器。
Git - 托管工具。
expat - XML文档解析器。
fcgi - CGI解析器
gdal - 开源栅格空间数据转换库。
grass - 开源GIS空间数据管理与分析软件。
gsl-devel - 数学科学计算库。
iconv - 文件编码转换库。
pyqt4 - 用来创建GUI应用程序的工具包,它把Python和成功的Qt绑定在一起,Qt库是这个星球上最强大的库之一
qt4-devel - qt4开发版
qwt5-devel-qt4 - Qt可生成各种统计图的Widgets
sip - SIP是一个计算机网络中应用层的信令控制协议。
spatialite - 是一套具有空间数据功能的 SQLite 数据库系统。
libspatialindex-devel - 空间索引。
python-qscintilla - 基于QT的源代码编辑器控件。
设置环境变量:http://www.ithao123.cn/content-836870.html 第5部分
(1)打开系统命令提示符,在控制台模式下设置环境变量中:运行->cmd ->D: -> cd OSGeo4W->cd bin ->o4w_env.bat 环境变量批处理文件
(2)
REM Make parent of this script location our current directory,
REM converting UNC path to drive letter if needed
pushed D:\OSGeo4W\bin\
cd ..
REM set OSGEO4W_ROOT to short path version
for %i in <"D:\OSGeo4W"> do set OSGEO4W_ROOT=%~fsi
set OSGEO4W_ROOT=D:\OSGeo4W
REM start with clean path
set path=D:\OSGeo4W\bin;C:\Windows\system32;C:\Windows;C:\Windows\WBem
for %f in <"D:\OSGeo4W\etc\ini\*.bat"> do call "%f"
call "D:\OSGeo4W\etc\ini\gdal.bat"
SET GDAL_DATA=D:\OSGeo4W\share\gdal
SET GDAL_DRIVER_PATH=D:\OSGeo4W\bin\gdalplugins
call "D:\OSGeo4W\etc\ini\libgeotiff.bat"
SET GEOTIFF_CSV=D:\OSGeo4W\share\epsg_csv
call "D:\OSGeo4W\etc\ini\liblas.bat"
SET GDAL_DATA=D:\OSGeo4W\share\gdal
call "D:\OSGeo4W\etc\ini\msvcrt.bat"
rem This is just a dummy to make sure the for loop in ..\..\osgeo4w.bat
rem always has some files to process.
call "D:\OSGeo4W\etc\ini\proj.bat"
SET PROJ_LIB=D:\OSGeo4W\share\proj
call "D:\OSGeo4W\etc\ini\python.bat"
SET PYTHONHOME=D:\OSGeo4W\apps\Python27
SET PATH=D:\OSGeo4W\bin;C:\Windows\system32;C:\Windows;C:\Windows\WBem;D:\OSGeo4W\apps\Python27\Scripts
call "D:\OSGeo4W\etc\ini\qt4.bat"
set QT_PLUGIN_PATH=D:\OSGeo4W\apps\qt4\plugins
set QT_RASTER_CLIP_LIMIT=4096
popd
其中用于CMake生成VS解决方案的变量包括:
OSGEO4W_ROOT=C:OSGeo4W
PATH=%OSGEO4W_ROOT%bin;%PATH%
PYTHONHOME=%OSGEO4W_ROOT%appsPython27
PATH=%OSGEO4W_ROOT%appsPython27Scripts;%PATH%
说明:CMake使用PYTHONHOME查找SIP包所在路径。
(3)
在环境变量INCLUDE和LIB中添加OSGeo4W依赖库头文件和静态库文件所在路径,或者在环境变量PATH中添加依赖库头文件和库文件所在路径。例如:
setINCLUDE=%OSGEO4W_ROOT%include;%INCLUDE%
set LIB=%OSGEO4W_ROOT%lib;%LIB%
(4)定义GRASS_PREFIX,例如:
setGRASS_PREFIX=c:/OSGeo4W/apps/grass/grass-6.4.3
注意:在GRASS_PREFIX路径中不要使用’’代替’/’,否则CMake将产生错误。
(5)在环境变量PATH中添加添加GNUWin32 Flex/Bison可执行文件所在路径,例如;
set C:GNUGnuWin32bin
(6)在环境变量PATH中添加CMake可执行文件所在路径,例如:
C:GNUCMake2.8bin
(7)调用VS2010的VCvcvarsall.bat批处理文件,将自动递归调用VCbinvcvars32.bat和%VS100COMNTOOLS%vsvars32.bat批处理文件,例如:
call "C:Program FilesMicrosoftVisual Studio 10.0VCvcvarsall.bat" x86 或
call "C:Program Files (x86)MicrosoftVisual Studio 10.0VCvcvarsall.bat" x86
其中用于CMake生成VS解决方案的变量包括:
VS90COMNTOOLS =C:Program FilesMicrosoftVisual Studio 10.0Common7Tools或
VS90COMNTOOLS =C:Program Files (x86)MicrosoftVisual Studio 10.0Common7Tools
LIB=”C:Program FilesMicrosoftSDKsWindowsv7.0ALib; %LIB%;”或
LIB=”C:Program Files (x86)MicrosoftSDKsWindowsv7.0ALib; %LIB%;”
说明:CMake需要在环境变量PATH或LIB中查找Microsoft SDKs 的SetupAPI.Lib,找到后定义SETUPAPI_LIBRARY变量。
特别注意:系统环境变量PATH中路径之间分号的前后不要加空格,否则CMake解析路径时出现错误。
这里面的环境变量设置特别烦琐
第一次generate输出日志文件:
QGIS version: 2.4.0 Chugiak (20400) Could not find GRASS Found Proj: D:/OSGeo4W/lib/proj.lib Found GEOS: D:/OSGeo4W/lib/geos_c.lib Found GDAL: D:/OSGeo4W/lib/gdal_i.lib (2.1.2) Found Expat: D:/OSGeo4W/lib/libexpat.lib Found Spatialindex: D:/OSGeo4W/lib/spatialindex.lib Found Qwt: D:/OSGeo4W/lib/qwt.lib (6.0.2) Found Sqlite3: D:/OSGeo4W/lib/sqlite3_i.lib Found PostgreSQL: D:/OSGeo4W/lib/libpq.lib Found SpatiaLite: D:/OSGeo4W/lib/spatialite.lib Found Qt version: 4.8.6 Touch support disabled Found QScintilla2: D:/OSGeo4W/lib/qscintilla2.lib (2.8.4) Found GSL: D:/OSGeo4W/lib/gsl.lib;D:/OSGeo4W/lib/cblas.lib Configuring done Generating done
VS2008 + QGIS1.7.1试验的更多相关文章
- 害人的VS2008,manifest导致“应用程序配置不正确,应用程序未能启动”
在VC++2008的项目中,如何显示地指定要使用的C++库的版本? 开发环境:VS2008 SP1 + Win2003 SP2 因为我的VS2008安装了SP1补丁,所以有了9.0.3 ...
- 解决VS2008在win7找不到输入序列号的地方
1.VS2008在Windows7 打开维护界面看不到可以输序列号的地方. 因为微软把他隐藏了. 2.我们可以借用工具把他显示出来 下载地址:http://www.zlsoft.com/techbbs ...
- .net垃圾回收机制编程调试试验
1. 什么是CLR GC? 它是一个基于引用跟踪和代的垃圾回收器. 从本质上,它为系统中所有活跃对象都实现了一种引用跟踪模式,如果一个对象没有任何引用指向它,那么这个对象就被认为是垃圾对象,并且可以被 ...
- [vs2008]Visual Studio 2008 SP1添加或删除功能提示查找SQLSysClrTypes.msi文件
前言 今天接到领导布置的一个任务,是之前同事负责的项目.离职了,现在客户有些地方需要修改,由于我之前参与过,就落在我的头上了. 然后我就把代码弄了过来,打开发现其中需要用到水晶报表.(我觉得不好用,不 ...
- 转VS2010解决方案转换到VS2008
原文链接地址:http://www.codeproject.com/Tips/80953/Converting-VS2010-Solution-to-VS2008 如果你使用VS2010的任何版本 ...
- VS2008控件全部消失
新建VS2008项目之后,本该位于工具箱的控件全部消失不见,只剩下"#13119"提示,修复方法如下: 注:不一定三步都需要用到,仅在当前步骤无效情况下才用到下一步 1.步骤一 ( ...
- Win7下VS2008破解方法
在Win7系统下,无法像xp下通过“控制面板”卸载的方法重新输入序列号来破解VS2008. 但可以通过以下几个步骤来破解: 1.首先需要安装VS2008,可以安装VS2008专业版90天试用版或VS2 ...
- 测试环境搭建心得 vs2008+SQL2008 PHP+APACHE+mysql Team Foundation Server2013
大四即将结束,大学的最后一个假期,找到一份实习工作,担任测试工程师.在过年前的最后一周入职,干了一周的活儿.主要工作就是搭建测试环境. VMware 主要熟悉VMware软件,装系统基本都没什么问题. ...
- 惊艳!9个不可思议的 HTML5 Canvas 应用试验
HTML5 <canvas> 元素给网页中的视觉展示带来了革命性的变化.Canvas 能够实现各种让人惊叹的视觉效果和高效的动画,在这以前是需要 Flash 支持或者 JavaScript ...
随机推荐
- jquery关于attr和prop的差异
转自:http://www.jb51.net/article/88068.htm 处理像checkbox,radio和select这样的元素时,经常会发现明明使用了attr设置了selected或ch ...
- 使用 gitbook 写东西
会了markdown 不会用gitbook怎么可以呢 先安装 npm install gitbook -g npm install gitbook-cli -g cli使用代码是客户端的意思,要牢记 ...
- 8F - 采矿
某天gameboy玩魔兽RPG.有一个任务是在一个富含金矿的圆形小岛上建一个基地,以最快的速度采集完这个小岛上的所有金矿.这个小岛上有n(0<n<1000000)个金矿,每个金矿的矿藏量是 ...
- Java VisualVM 插件地址
打开Java VisualVM检查更新插件时,默认的连接连不上,通过浏览器访问之后发现默认的服务器已经404,新地址已经迁移到github,下面这个地址里面有不同版本jdk对应的插件中心地址. htt ...
- Git 分支 主干
~/Desktop/work/movies/movie(apps) $ git status //先查看是否有需要提交的东西# On branch appsnothing to commit (wo ...
- Netsharp下微信菜单以及OAuth
一.OAuth介绍 在微信开发中,当打开一个页面是,业务场景一般会基于粉丝绑定用户信息,即页面需要基于粉丝和用户的身份处理业务逻辑. 在微信中打开一个页面有三个场景: 1.文本回复中直接包含url 2 ...
- Python Tutor
Python Tutor Python Tutor 是由 Philip Guo 开发的一个免费教育工具,可帮助学生攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程.通过这个工具, ...
- 【51NOD】1006 最长公共子序列Lcs(动态规划)
给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的). 比如两个串为: abcicba abdkscab ab是两个串的子序列,abc也是,abca也是,其中abca是这两个 ...
- JAVA钩子方法+模板方法
模板方法: 写一个抽象类,这个抽象类有多个抽象方法,里面设立一个模板方法,这个模板方法也可以称之为模板算法,设立不同方法的执行顺序,封装业务流程,暴露出去: 模板方法模式的特点很好总结,它将一般性的可 ...
- 棋盘问题(NOIP1997)
题目链接:棋盘问题 这道题水不水呢?还是很水的,为什么?因为数据太小了.直接算就行了. #include<bits/stdc++.h> using namespace std; int m ...