zoukankan      html  css  js  c++  java
  • 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:OSGeo4Win
           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:OSGeo4Win;C:Windowssystem32;C:Windows;C:WindowsWBem
           for %f in <"D:OSGeo4Wetcini*.bat"> do call "%f"
           call "D:OSGeo4Wetcinigdal.bat"
           SET GDAL_DATA=D:OSGeo4Wsharegdal
           SET GDAL_DRIVER_PATH=D:OSGeo4Wingdalplugins
           call "D:OSGeo4Wetcinilibgeotiff.bat"
           SET GEOTIFF_CSV=D:OSGeo4Wshareepsg_csv
           call "D:OSGeo4Wetciniliblas.bat"
           SET GDAL_DATA=D:OSGeo4Wsharegdal
           call "D:OSGeo4Wetcinimsvcrt.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:OSGeo4Wetciniproj.bat"
           SET PROJ_LIB=D:OSGeo4Wshareproj
           call "D:OSGeo4Wetcinipython.bat"
           SET PYTHONHOME=D:OSGeo4WappsPython27
           SET PATH=D:OSGeo4Win;C:Windowssystem32;C:Windows;C:WindowsWBem;D:OSGeo4WappsPython27Scripts
           call "D:OSGeo4Wetciniqt4.bat"
           set QT_PLUGIN_PATH=D:OSGeo4Wappsqt4plugins
           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
    

      

  • 相关阅读:
    Code Forces 650 C Table Compression(并查集)
    Code Forces 645B Mischievous Mess Makers
    POJ 3735 Training little cats(矩阵快速幂)
    POJ 3233 Matrix Power Series(矩阵快速幂)
    PAT 1026 Table Tennis (30)
    ZOJ 3609 Modular Inverse
    Java实现 LeetCode 746 使用最小花费爬楼梯(递推)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
  • 原文地址:https://www.cnblogs.com/2008nmj/p/4195425.html
Copyright © 2011-2022 走看看