Ossimplanet编译笔记(VS2008)
来源:互联网 发布:知乎复制不了 编辑:程序博客网 时间:2024/06/16 05:52
Ossimplanet编译笔记(VS2008)(转载)
已有 1143 次阅读 2011-11-22 14:08 标签: Ossimplanet Ossim1. 准备工作
下载OSSIM、OSSIMPlanet源代码、依赖库、QT。Osgeo服务器上有太多优秀的GIS\RS开源工程:http://download.osgeo.org/进入OSSIM项目下载相关源码和依赖库。1.1源代码:http://download.osgeo.org/ossim/src/(ossim-1.8.4.tgz 10-Mar-2010 05:58 59M)源代码也可以用svn下载最新的:https://svn.osgeo.org/ossim/trunk/1.2依赖库:http://download.osgeo.org/ossim/dependencies/windows_vcexpress2008/(ossim_dependencies.zip 22-Jul-2009 13:03 1.3G )注意:1.3G的依赖库是最全的。Installers目录下有个114M的依赖库是运行依赖库,对于编译来说不够全。Ossim目录下还有大量的参考文档和示例数据及演示视频。1.3 QT:Qt libraries 4.6 for Windows (VS 2008, 194 MB)。 http://get.qt.nokia.com/qt/source/qt-win-opensource-4.6.1-vs2008.exe直接安装就行,无需编译QT。Qt插件(for VS2008, 43.5M)。http://get.qt.nokia.com/vsaddin/qt-vs-addin-1.1.4.exe
2. 编译
2.1 工程用VS2008打开项目解决方案:D:\ossim\ossim\projects\vs\solution.sln目前的版本一共46个项目。可以逐一浏览各个工程,大体知道每个工程的作用。注意:很多Generated目录下的文件不存在是正常的,这些文件是Qt编译器编译后才能生成的。2.2 编译环境设置设置windows环境变量:QT_HOME=C:\Qt\4.6.1OSSIM_DEPENDENCIES=D:\ossim\ossim_dependencies当然,系统设置环境变量不是必须的,可以直接设置VC++ Directories,include files:D:\ossim\ossim_dependencies\includeC:\Qt\4.6.1\includeD:\ossim\ossim_qt4\includeD:\ossim\ossim\include上述include对应的lib设置到library files中。2.3 编译上述步骤完成后,对于ossim-1.8.4版本,基本可以编译成功41个项目。对于SVN签出的版本,可能问题比较多。需要手动把几个文件添加到工程中。根据编译器提示进行。比如在编译ossim库的时候,link错误,说是ossimQuickbirdNitfTileSource中虚函数无法实例化,仔细看看,发现实现文件ossimQuickbirdNitfTileSource.cpp没有在工程中。手动添加即可。这样的问题有几处。2.4 Qt相关工程编译对于Qt工程ossimQt,需要手动修改编译设置,因为qt生成的.h文件需要用qt的编译器编译。而我们安装的qt路径和版本各不相同,所以需要更新。右键ossimQtAboutDialogBase.h文件,custom Build Step:Command line:C:\Qt\4.6.1\bin\moc.exe 改成自己QT安装目录。同样,Additional Dependencies改为Qt按照目录。小技巧:ossimQt工程中一共有几十个.h文件,如果一个个手动更改太费事,用记事本打开:D:\ossim-1.8.4\ossim-1.8.4\ossim_qt4\src\ossimQt.vcproj把文件中的c:\Dev\Qt\2009.03\qt替换成自己QT安装目录即可。于是编译Qt的问题解决。其他几个问题基本都是link的时候找不到lib的问题,有些是lib有前后依赖关系,把这些lib的目录放到工程依赖目录下即可解决。
3. 我在编译中遇到的其他问题
注意:以下这些问题不一定每个人都能遇到。3.1 error C2471:cannot update program database ' \debug\vc90.pdb'pdb更新错误,是vc2008的经典bug。把debug信息设置为z7兼容ok。3.2 找不到头文件xrefwrap找不到xrefwrap等头文件。请安装VS2008的sp1。其实问题3.1,3.2在安装sp1后都消失了。3.3 找不到各种lib第一次编译,找不到gpstk.lib、freetype239.lib等库,发现是下载的114M的版本而不是1.3G的版本。注意:在解压压缩文件的时候,有时会提醒有重复文件,直接全否就行。因为解压时间较长,不要以为出现这个提示时已经解压完成。
4. 调试与运行
确保所有编译生成的dll在同一个输出目录(release和debug目录分开)。把依赖库中的所有dll拷贝到同一个目录。把Qt安装文件夹中的dll拷贝到同一个目录。
5. 补充说明:
刚才在OSGeo.org的开发者社区Ossim-developer版面上有人提问为什么没有生成ossimplanet.exe,估计国内开发者也会有人有这样的疑问,看来有必要补充一下。在编译的文件中没有ossimplanet.exe。这是因为D:\ossim\ossimPlanetQt这个里面的工程不在上述的.sln里面。找到D:\ossim\ossimPlanetQt\ossimPlanetQt.pro文件。这是Qt的工程。在安装了qt插件的vs2008里面,可以直接打开qt工程。由于有了前面的设置,直接编译就能成功生成ossimplanet.exe。2.4节的内容应该也可以用这种方式来编译,因为可以找到D:\ossim\ossim_qt4\ossim_qt4.pro。如果exe和所有dll生成到同一个目录,那么就可以开始运行、调试和研究ossimplanet了。
希望大家能顺利编译得到如下结果。Good luck!
- Ossimplanet编译笔记(VS2008)
- Ossimplanet编译笔记(VS2008)
- OpenCV学习笔记(3)用VS2008编译OpenCV2.0源代码(编译错误已解决)
- VTK+cmake+vs2008安装和编译,学习笔记
- omnimeeting视频会议程序编译(vs2008)
- VS2008常见编译错误(总结篇)
- OGRE1.8.1源码编译(VS2008)
- Live555分析(一):VS2008编译
- vs2008 静态编译 动态编译(release debug)
- vs2008 编译 tcl
- vs2008编译boost
- vs2008编译ode
- vs2008 编译iconv
- VS2008编译OpenSSL(转)
- vs2008 编译iconv
- 用VS2008编译DirectShow
- C++ VS2008编译选项
- VS2008下编译BOOST
- Clustering (4): Spectral Clustering
- Windows驱动开发WDM (4)- 缓冲区方式例子
- Facebook TimeLine 信息获取步驟
- flex与java集成
- 进程---------进程描述符(1)
- Ossimplanet编译笔记(VS2008)
- Android NDK学习 <三> Android.mk实例和NDK实用技巧
- MSSql技巧之快速得到表的记录总数
- 第一课 jaxws-webservice编程
- jdk-6u24-windows-i586/ia64/x64 区别
- MySQL-5.5.11 源码安装记录
- php中\r \r\n \t的区别
- phpcms网站搬家教程与经验
- 财务主管的ERP实施之路