QGIS编译:解决bison生成qgssearchstringparser.cpp错误
需积分: 48 163 浏览量
更新于2024-09-12
收藏 22KB DOCX 举报
"QGIS编译过程中的关键注意事项与解决方法"
在QGIS的编译过程中,开发者可能会遇到一些特定的挑战,特别是对于那些希望通过QGIS的SDK进行二次开发的人来说。以下是一些编译QGIS时需要特别关注的问题及其解决策略。
首先,QGIS源代码中包含一个使用Bison工具生成的文件`qgssearchstringparser.cpp`。Bison是一个解析器生成器,用于创建处理语言或协议的解析器。在使用vc8(Visual Studio 2005)进行编译时,直接调用Bison可能会导致错误。错误信息通常显示为“Project:error PRJ0019:A tool returned an error code from 'Generating qgssearchstringparser.cpp'”。为了避免这个问题,需要手动执行Bison命令。具体操作是切换到Bison可执行文件所在的目录(如`C:\GnuWin32\bin`),然后输入相应的命令,指明输入文件(`qgssearchstringparser.yy`)和输出文件(`qgssearchstringparser.cpp`)的位置。确保路径正确无误,否则编译将失败。
其次,当链接PostgreSQL数据库支持时,需要正确指定库文件。在编译QGIS时,务必包含`libpq.lib`,这是PostgreSQL客户端库,它允许QGIS与PostgreSQL数据库进行交互。如果不正确地指定或遗漏这个库文件,编译连接阶段可能会出现错误。
除了上述问题,编译QGIS还需要一些必备的软件工具,包括:
1. Visual Studio 2008 SP1:作为开发环境,用于构建QGIS的Windows版本。
2. CMake:这是一个跨平台的构建系统,用于生成适配不同编译器的项目文件。
3. Bison:解析器生成器,用于处理语法定义文件。
4. Flex:词法分析器生成器,处理输入流并生成词法分析器。
5. OSGeo4W:一个基于Windows的开源GIS软件包,提供了许多GIS相关的库和工具。
6. QGIS源代码:包含了QGIS的全部源代码,是编译的基础。
编译QGIS的步骤大致如下:
1. 安装所有必要的软件和库。
2. 使用CMake配置项目,指定源代码目录和生成的构建目录。
3. 解决Bison生成`qgssearchstringparser.cpp`时的错误,按照上述方法手动执行Bison命令。
4. 在Visual Studio中打开由CMake生成的项目文件,并编译解决方案。
5. 在编译过程中,确保正确设置库路径,尤其是PostgreSQL的`libpq.lib`。
6. 如果没有错误,编译完成后,就可以使用生成的SDK进行二次开发了。
QGIS的编译过程涉及到多个步骤和工具,对每个环节的理解和掌握至关重要。遇到问题时,需要耐心调试和查阅相关文档,以便成功完成编译并顺利进行二次开发。
436 浏览量
2012-04-05 上传
194 浏览量
919 浏览量
457 浏览量
1176 浏览量
点击了解资源详情
![](https://profile-avatar.csdnimg.cn/3e52c9baad8c4241b6b364bc58d6534d_image_proc.jpg!1)
image_proc
- 粉丝: 3
最新资源
- 设计模式:面向对象软件的复用基础与实例解析
- 开发指南:Microsoft Office 2007与Windows SharePoint Services
- DB2 Version 9 Command Reference for Linux, UNIX, Windows
- EJB技术详解:Java与J2EE架构中的企业级组件
- Spring整合JDO与Hibernate:Kodo的使用教程
- PS/2鼠标接口详解:物理连接与协议介绍
- SQL触发器全解析:经典语法与应用场景
- 在线优化Apache Web服务器响应时间
- Delphi函数全解析:AnsiResemblesText, AnsiContainsText等
- 基于SoC架构的Network on Chip技术简介
- MyEclipse 6 Java开发完全指南
- VBA编程基础:关键指令与工作簿工作表操作
- Oracle学习与DBA守则:通往成功的道路
- Windows Server 2003 DNS配置教程
- 整合JSF, Spring与Hibernate:构建实战Web应用
- 在Eclipse中使用HibernateSynchronizer插件提升开发效率