WinXP+VS2008+qgis2.6.0源码调试笔记(离线安装)_第1页
WinXP+VS2008+qgis2.6.0源码调试笔记(离线安装)_第2页
WinXP+VS2008+qgis2.6.0源码调试笔记(离线安装)_第3页
WinXP+VS2008+qgis2.6.0源码调试笔记(离线安装)_第4页
WinXP+VS2008+qgis2.6.0源码调试笔记(离线安装)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、WinXP+VS2008+qgis2.6.0源码调试笔记(离线安装)时间:2014年11月22日1. 准备工作1.1下载QGIS源码Qgis源码可在官网上下载,当前的最新版本是Qgis2.6.0版本。1.2 下在 Visual Studio 2008 Pro下载离线破解版1.3下载Qgis编译所需的依赖工具1.3.1 CMakeQgis跟大多数开源工程一样,也是采用Cmake编译的。CMake的版本要求CMake >= 2.8.0,本人采用 CMake2.8.12。下载地址:/files/v2.8/cmake-2.8.12

2、.2-w in32-x86.exe1.3.2 flex&bis onflex和bis on目前提供的 wi ndow安装包版本太老,截至 2013年 Win dows安装包flex 的版本是 2.5.4a( flex 版本是 2.5.37 ; Win dows 安装包 bis on 的版 本是 2.4.1(http:/g nuwin 32.sourceforge .n et/dow nli nks/bis on .php),而现在最新的 bis on 版本是 3.0。 对于Qgis2.6.0不能采用目前提供的 flex和bison的windows安装包(Qgis1.8.0之前的版本 是

3、可以的,编译的时候会出现问题,后面细说)。既然flex和bison的windows安装包不能用,那该怎么办呢?有两种解决思路:a)下载flex2.5.37和bison 3.0的源码,通过 Cygwin或Mingw安装;(有点麻烦,本人 木有试)b)从 sourceforge 上下载最新版的 Win flex-bison 安装包 win_flex_bison-latest.zip,本人下载的版本包含win_flex2.5.37和win_bison3.0,不需要安装,直接将安装包解压到指定目录,确保目 录中没有空格,本人的目录为 C:GnuWin32win_flex_bison。(注意:最新的 W

4、in flex-bison 在 vs2008中还不能直接使用,在vs2010中是可以直接使用的,由于本人安装了 VS2008, 所以还得进行一系列规则配置,后面细说) win_lleM_bison公件旦編辑査看(也 收魏帥 工且co 帮助凹- 0 -歯| 搀索色文件夹| .> X 191蹩b地址(E) | J C:<jnuWin32inJlex bison名称大小类型修取日期l|custom buildules j2011-11-20 20:49Qdata文临201441-20 20:49i 对 HexLaxer.h7 KBC/C+ + Header2014-6-172:15団 U

5、NI5TD_ERR0R. rftadmt1 KBREADME文件2014-6-17 2:15534 KB应用程序2014-6-17 2:18winbison. exe502 KB应用程存2014-6-1721:16IS README.txt3 KE文本文档2014-&-17 21:201.4下载编译所依赖的库第三方库是通过 OSGEO4W提供的,首先下载 OSGEO4W安装包http:/dow nl /osgeo4w/osgeo4w-setup-x86.exe32bit) or /osgeo4w/osgeo4w-

6、setup-x86_64.exe64bit)其次,下载0SGE04W 中的依赖库,« expat fcgi gdal grass gsl-devel iconv pyqt4« qt4-devel qwt5-devel-qt4« sip« spatialite« libspatialindex-devel« python-qscintilla由于是离线下载,在离线主机上,继续安装OSGeo4W安装包,选择高级安装,选择从本地安装,选择刚才下载的依赖库,继续安装,则编译所依赖的库文件安装完成。2. 环境变量设置新建一个setup.bat文

7、件,输入以下echo offset VS90COMNTOOLS=%PROGRAMFILES%Microsoft Visual Studio 9.0Commo n7Toolscall "%PROGRAMFILES%Microsoft Visual Studio 9.0VCvcvarsall.bat" x86set INCLUDE=%INCLUDE%;%PROGRAMFILES%MicrosoftSDKsWi ndowsv7.1i ncludeset LIB=%LIB%;%PROGRAMFILES%Microsoft SDKsWi ndowsv7.1libset OSGEO4W

8、_ROOT=C:OSGeo4Wcall "%OSGEO4W_ROOT%bi no4w_e nv.bat"path %PATH%;%PROGRAMFILES%CMake2.8bi n; %PROGRAMFILES%G nuWi n32bi nset GRASS_PREFIX=c:/OSGeo4W/apps/grass/grass-6.4.4set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%i ncludeset LIB=%LIB%;%OSGEO4W_ROOT%lib;%OSGEO4W_ROOT%libcmd保存,双击运行setup.bat,如果控制台出现

9、Setins( &nvu?onmenit £口尸 us Inf Microsoft (llsual Stud io 2068too Is _patli=d: 0SGeo4WappsPyt hon27Scripts 0SGEO4U hone is d:OSGeo4W|11cposoFt U in do us 版本 6.1 _7600版权所有 Cc> 2B09 Microsoft Corpoi*ation Q 保留所有权弟h说明你的vs的环境变量设置正确,否则请检查以上步骤。3. CMake 配置3.1从cmd中运行cmake-gui.exe,重点是需要从 cmd中运行,这

10、样才可以获得通过 setup.bat设置的环境变量的值。3.2在Where is the source code中输入源码的位置,比如我将源码解压在D:QGIS下,在 Where to build the binaries中输入生成的工程目录,比如我设置在 D:QGISbuild下3.3点击Con figure时选择自己的 vs环境,我选择了 vs20083.4遇到找不到Flex和Bis on路径时,需要把刚才下载的 Flex和Bis on的目录设置后再 继续点击 Configuration ;3.5遇到找不到 geos、sqlite3等包含头文件目录时,统一设置为D:OSGeo4Winclu

11、de,找不到库目录时统一设置为D:OSGeo4Wlib,3.6设置SETUPAPI_LIBRARY 为sdk中的SetupAPI.Lib,如果没有安装 SDK,则需安装 相应版本的SDK。:T*T*jSuc*i_Twe.CHHEU0VM1UHI k IMLEESnafJMDWCJJT GAT#"* rui_.cjvu IM. IM1XC OH>Zj£±i HOllXCJIU 益H悴!t EM4空KR5«n<j<c>5MJ M.IPt._iUAlX 二JR njrnn jewh W1WHJWTLEWUhiZuElOH rtJGTS

12、WFJ7<1TBWETh SeSi洛 Lh/MR -卫 1wbti pnpiuk. wu4in ”尸矗喧“工wCTh Je2>aT1&JTE设置完成后点击 Con figure,选择Visual Studio 9(2008)出现con figure do ne之后,点击 gen erate出现gen erate done之后,就可以进行编译了。注意:1.CMAKE_INSTALL_PREFIX的值默认为 C:Program Filesqgis2.6.0,表示编译完成的qgis2.6.0的安装目录,该目录可以修改。2. 注意 SPATIALITE_INCLUDE_DIR 的目

13、录得设为 C:OSGEO4Winclude,而不能设 为 C:OSGEO4Winclude'spatialite,否则编译的时候可能会出现error C3861:” spatialite_init找不到标识符。4. 编译前配置 VS2008+win flex_bison由于 win flex_bison中自带的规则只使用于VS2010,因此在 VS2008中使用 winFlex_bison需要进行相关配置。VS2010 + win flex_bison,参考Visual Studio custom build rules- These steps help you setup cust

14、om build rules for Visual Studio 2010 and up.VS2008 + win flex_bison,参考 Using flex and bison in MSVC+下面详细介绍一下VS2008 + win flex_bison的配置过程吧,主要参考 Using flex andbiso n in MSVC+一文提到的方法。4.1在vs2008项目中添加自定义生成规则用 VS2008 打开 F:xffangQGISbuildqgis2.6.0.sIn,右键点击项目 ALL-BUILD-自定义生 成规则,进入 VC+自定义生成规则文件界面;继续选择新建规则文件

15、,设置:规则名称:Flex and Bis on Tools文件名:FlexBiso n.rules规则存放目录: D:flex_biso nRule点击确定,完成规则文件创建,之后在vs2008中编译的所有flex_bison相关项目都用此规则。D:flex_bis on Rule目录下生成的规则文件如图:画£Jill在VC+自定义生成规则文件界面;紧接着选择修改规则文件,显茹名称型: flex and Bison T oolf 玄件名(日; FleorrnJes目录:k:CnuWn32-vs 自罡义生成规!!:名鯨丨立件扩展名Btson*.yFlrx*.l/.fi&x蘸”

16、'"l恥肖点击添加生成规则按键,添加两个生成规则, 分别为Bis on和Flex,主要Bison规则一定要在flex之前。Bison规则设置:Flex规则设置:修改自定理生成规JU勺凶自钗生咸观则雇性働附加卓赖项仅显吓规则雇性True名称FlewDGnuWin32win_fleK_bisonwin_neKjEKe -wincompat $(InputPth)抠处理分P畐符輪出le«+yyx文件帝展名显示茗称Flex支蒔立件处遲True执行说明Running Flew定制好的规则文件设置如下:制建观则艾件修改规则文忡,宜杖现有酌(巳二岡穎列蘇Visual C4-+ 口

17、圭义生成SUU玄肆咅亦攵粉展若迹 License uampiler,tl.licx匚;Proyafn r-iiesviicrosoft vifuai.r*l MlLrosoftl*lazroftsffim. + .asmC PTCiyam FfesVtrosct Vlsjal.E Flex and ascn tjoByj*exc Gnuwins-vslBsorLriJBs镰更世站歷色 .住鉅包含的自定空生戒規阳:眇iBkn£.:¥_©垃呷阪門?色理耳丿匕:凹处门上止?n.*¥*-d ¥.:&里.駆.胆丄匣弓因._Fl ev*1/. Fl

18、exC:GnuWfri32wn_flex_bisonwi_fierH axe -iicompat $(npijtPath)5. 编译-生成代码更换解决方案配置Debug为RelWithDeblnfo;项目右键-生成,开始进行编译,由于整个编译过程十分漫长,因此只编译Qgis依赖的项目。ALL-BUILD 右键,项目依赖项,勾选以下几个依赖项,开始编译即可。名称说明qgisQGIS可执行程序qgis a nalysis依赖项qgis core依赖项,QGIS核心库qgis gui依赖项,QGIS界面库uiQGIS所有的界面gdalprovider读取栅格数据驱动Ogrprovider读取矢量数据

19、驱动6. 安装将qgis项目设为启动项目,点击 INSTALL安装,可能会出现缺少 qwt5.dll的错误,其原因是环境变量中没有添加qwt5.dll所在的目录 C:OSGeo4Wbin ;或者直接将 qwt5.dll拷贝到vs目录下,继续INSTALL安装,安装完成之后,点击安装目录下的qgis.exe,默认安装目录为C:Program Filesqgis2.6.0bin,出现QGIS界面提示,说明安装成功。i lb啓H b窗的卢“ :1 /- C" I f- -Fj岛讳J性.Lu,g w二二 1 V*宅區ii r<2 gi «Ht 曙i AEiv;' Qt

20、 t* 4*q,? Kni Tip *H O> u?F芒»DE T Iryz出 &V九附:注意问题(1)环境变量设置除了运行setup.bat自动设置环境变量外,一定要把win flex_bison的解压目录、OSGeo4W安装bin目录、Cmake安装bin目录、setupAPI.lib目录添加到环境变量Path中;解决方法:环境变量最好全部都提前设好,避免编译出现其他错误。 win flex_bison 一定要解压到没有空格的目录下,并且在 CMake中要配置正确路径, 否则,可能出现 C:G nuWin 32win_flex_biso nwin_biso n.ex

21、e: m4 :No such file or directory 或者Project: error PRJ2019:某个工具从以下位置返回了错误代码:“Generating qgsexpressionparser.cpp 等类似错误,解决方法:a) C:G nuWin 32win_flex_biso nwin_biso n.exe: m4 :No such file or directory ,问题只能是重 新解压win flex_bison到无空格的路径b) CMake中Bis on路径设置不正确可能会导致qgsexpressio nparser.cpp生成问题,v f JI KJ p *3

22、>ProJect : error PRJD019 :某亍TMAUlT位矍返回了错谍代码: Generating qgsexpressi onparser. cpp' 3成日志保存在“ £】!*:“£匕tore. dijAEJWithDEblnEa'BddLjg. htim" 3>q«ii car* - 1十諸俱,0亍警告=全部重脯生成:咸功2个,夷败1个亠0t过口个=打开BuildLog.htm 可以看到,编译出错位置的命令,卜 1f F f 汕 呦Jd*.«! i.fiH Jtklhtrti I btb>.B

23、JimooCIHJ 14 -N."'ts*! " E A rff-hijgr.CAI IwtLLdi ffr«Eei «d7b_core.flLctoetoZrfo-BlTMDDS» HA 3 »vui._f lu_iblJ-u'i h uaa. hmi -oF 上土aeijt軒匚l ntLjafr-upp di -» °l P _ 上工 teojr 并丄总 d* 工打丿卫 l* Lhe.«be.C -e? am-i <hm icpr*MiuripiU jbc -gvrn li 1

24、B jVCfea-ji db除了正确配置 CMake路径之外,还可以通过手动编译来解决:在命令行进入到win flex_bison解压目录,运行:win _bis on. exe -oF:/QGIS/build/src/core/qgsexpressi on parser.cpp -F:QGISSourceqgis-260srccoreqgsexpressi on parser.yy贝U可生成 qgsexpressionparser.cppc) 也有可能由于 CMake中Flex路径设置不正确导致 flex_qgsexpressionlexer.cpp生成问题,匚:/GruWinSMl n_f

25、 le x_biso n/fl ex.e>e本应该为:C:/G nuWi n32/win_flex_biso n/win_flex.exe (本人为复现错误,估计修改的1或Hi处喪文件.l>Froject : err»r 10019;某平工具从以下位登返回了错误代码:"GeriE:-atin fleK.qgsticprvsiaDLLKiz-.1成日志保存在 * filg: / f : IxiFfanM'QGdS'buildGmcofelqEi s. ceire!. dit'RalWi thI)EbTii£oBiiiLdLog:.

26、 ht"1僦让- 1个诸谒0 卜警告 m、4 n e a” r _jr. n a打开BuildLog.htm可以看到E成d志 tit 旦讯 塞 i MHH.W A*lVltlififlblHfD|VlLii32泠fjfl f *1; fc5fS # " £X ri t±AEA/i QiJISiXa Ltf«cc-i fee aqjf ap_%_an.le bX>i EKiea JiJk'hJ OQi:gbAE"1 i 总齐届*pct» cct'ie u'MlcJZ' m.n_±

27、 J«c_bL>cin Clirn.-Eaa -ar:i! Et<kiq' (rtZEid. xtE" Ear-ai.' f LtBi_EniBE?r!U>dOE.aHK- .!q?p r:?x££Hi. iCE15?33Wck.* gpi r- LtiiTHn / q-3_r-Z _ I. Z Hrcvcan/rami口匚】e* .丄1 _ _ _ Ffa 一 -E* ” L同样,除了配置 CMake路径外,可手动运行:win_flex.exe-oF:/QGIS/build/src/core/flex_qgsexpre

28、ssi on lexer.cppF:/QGIS/Source/qgis-2.6.0/src/ core/qgsexpressi onl exer.ll 可生成 flex_qgsexpressionlexer.cpp。(3)将 unistd.h 头文件添加到 VS2008 安装目录下的 include 中去;C:Program FilesMicrosoftVisual Studio 9.0VCi nclude作用:如果没有添加,生成的qgsexpressionparser为.c文件,而不是.cpp3 2 5ihmz xrr49 KB 匚 Source20H-U-21 11:43姿 U1 IdKJ

29、K JI l>ldi. Lil Id W11! h-lll Ilk-UIIILi£Jqgsexpressionparser,c f 电严一“一若添加unistd.h,则生成:| 刮 qgsex 卩畑 sionparsereutput hi qgsexpressicnparser.hpp qflsexpressioniMrser.cpp65 KB OUTPUT 文件4 KB 匚/匚+十 Header70 KB 匚+ Source2014-11-22 15:202014-11-22 15:202014-11-22 L5:2Dunistd.h文件可以从旧版本 GNU安装目录Include下获取。 如果安

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论