Qgis+Cmake配置

来源:互联网 发布:宁波行知实验小学照片 编辑:程序博客网 时间:2024/04/29 09:31


2016.11开源平台Qgis项目配置手册

 

 

框架设计

一、环境需求

      操作系统:Win7 64位操作系统

      编译器:VS 2010

      Qgis版本:QGIS-release-2_4版本源码

      CMake版本:CMake2.8.12.2

      Flexhttp://gnuwin32.sourceforge.net/downlinks/flex.php

      Bisonhttp://gnuwin32.sourceforge.net/downlinks/bison.php

切记配置Bison的环境变量D:\GnuWin32\GnuWin32\bin

      OSGeo4W64位):

      http://download.osgeo.org/osgeo4w/osgeo4w­setupx86_64.exe

(注:以上程序安装目录不能包含中文及空格,具体请参考QGIS Win7 64位编译-记忆悔中行-博客.pdf

二、CMakeQGis项目配置

1、设置源代码路径为QGIS-release-2_4目录

2、设置生成文件路径为与QGIS-release-2_4同级的Build(自己创建)目录

3、点击Configure,选择VS2010 64位编译器,点击Finish

以下为重点内容,在CMake中配置各libinclude路径

1GEOS配置

2GDAL配置

3ExpatQWTSpatialindexSqlite3配置

4Qmake配置

5SetupAPI.lib配置(Windows系统文件

6Proj配置

7、其他勾选项配置如下,只保留三项

 

 

8、以上配置选项配置成功后,可生成VS2010的项目文件qgis2.4.0.sln及其他相关项目文件,具体如下图所示:

9、编译qgis2.4.0.sln项目还需要将之前安装的unistd.h头文件放在VS安装目录下

OSGeo4W64/include/spatialite.h

替换(可以先查看一下内容是否一致)

OSGeo4W64/include/ spatialite/spatialite.h

10、编译时选择“RelWithDebInfo”模式

11、设置解决方案的启动项为qgis

12、从解决方案中卸载无用项目,只保留如下八个项目,结果如下图所示

gdalprovider

ogrprovider

qgis

qgis_analysis

qgis_core

qgis_gui

ui

ZERO_CHECK

13、编译Qgis项目,生成qgis.exe可执行程序

 

14、如果出现错误:

LINK: fatal error LNK1123:转换到 COFF期间失败:文件无效或损坏

按如下方式进行解决:

项目-->项目属性-->配置属性-->连接器-->清单文件-->嵌入清单中的改为,不让他将清单嵌入,自然也用不着转换了,所以轻松编译。虽然麻烦点,每次新建项目都要设置,但是总比不能编译强吧。

但是这次,不可以了,因为我的程序要加写rc,必须带清单才能正常使用。所以这种治标不治本的方法失效了。

根据猜想,可能是因为系统最近多次更新,出现了两个版本的cvtres.exe。而系统变量里将这俩都引用了,编译的时候,不知道用哪个了,导致出错。

这就好办了,删掉一个呗。

一个在C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe,另一个在你安装VS的软件目录..\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe

然后右键属性-->详细信息查看两者版本号,把老大的Kill掉,就完了。我的是在..\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe 的为老版本的,删掉它一切都正常了。

15QGis编译之后,部分图标不显示的问题,相信很多同学在Windows下编译时都遇到过这个问题。

解决办法:http://blog.csdn.net/deirjie/article/details/50446033

事实上,这个是Qt的问题,不是QGis的问题,并不是Qt不支持”svg”的图片(QtDesigner能够显示就说明是支持的),而是运行的时候程序找不到正确支持图标格式的库文件。在这里,这个文件是”qsvg4.dll”,这个文件在Qt所在路径的”plugins/imageformats”文件夹下,将这个“qsvg4.dll”拷贝到与”qgis.exe”路径下就可以了。由于QGis版本和Qt版本的问题,有些同学可能将库文件拷过去还是不行,是因为程序没找到“imageformats”这个文件夹。这个时候,只需要将”imageformats”这个文件夹全部拷贝到”qgis.exe”路径下就可以了。

 

16编译Qgis项目,生成qgis.exe可执行程序,但是无法执行。

解决方法:将D:\OSGeo4W64\bin下面.dll文件都拷贝到qgis.exe所在的文件夹下。

 

 

0 2
原创粉丝点击