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
    

      

  • 相关阅读:
    nested exception is java.lang.NoClassDefFoundError: org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter
    Java 四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
    技术笔记:多线程(Runnable)类或者是监听器中使用Autowired自动注入出现null的问题
    java获取本机IP
    [Java基础]StringUtils.join()方法与String.join()方法的使用
    SpringBoot bootstrap.yml bootstrap.properties 配置未生效
    ((TextBox)(GridView1.Rows[GridView1.EditIndex].Cells[1].Controls[0])).Text; 转换出错、获取不到值的解析 Asp.net
    C# 调用 origin 批量作图
    c# 调用R语言 实现线性拟合 方差 Ftest概率检验求p-value
    c#对象深复制 序列化与反序列化
  • 原文地址:https://www.cnblogs.com/2008nmj/p/4195425.html
Copyright © 2011-2022 走看看