OSG-OSGEarth

初次使用Cmake——以OsgEarth工程创建为例

转:http://www.cnblogs.com/Realh/archive/2012/02/08/2342507.html

Windows下编译那些个开源的项目真是头疼,特别是那种依赖非常多的项目...

第一次使用Cmake构建OsgEarth的项目,把过程记录一下。

OsgEarth是一个C++写的地形渲染库,必选的依赖项包括Osg、Gdal和Curl,可选的依赖项有GEOS、SQLite、MiniZip和V8。

运行Cmake,把路径填上

Generate,选择Visual Studio 9 2008,完成

报了一些错,说神马一下变量是NOTFOUND...
这个好办,把必选依赖项相关的都填上:

Search "GDAL":
GDAL_INCLUDE_DIR = D:/Code/osgearth/src/gdal/include
GDAL_LIBRARY = D:/Code/osgearth/src/gdal/lib/gdal.lib

Search "CURL":
CURL_INCLUDE_DIR = D:/Code/osgearth/src/curl/include
CURL_LIBRARY = D:/Code/osgearth/src/curl/lib/libcurl.lib
CURL_LIBRARY_DEBUG = D:/Code/osgearth/src/curl/lib/libcurld.lib

Search "Osg_DIR"
OSG_DIR = D:/Code/Osg

接下来勾选Advanced,然后Search "NOTFOUND",把搜到的变量全部给删了,包括OSG的那一堆DIR、Include和Lib。

然后Configure、Generate,可能还会遇到一些小问题,把没删干净的NOTFOUND接着删了,就可以了。

参考链接:

osgearth+vs2010安装

OSGEARTH + VS2010 安装

转:http://www.cnblogs.com/eaglezhao/archive/2011/09/26/2192389.html

*VS 平台不重要,本教程也适用于VS2008等。假设我的OSG目录为:D:/OSG

*本教程参考网上osgearth+vs2008安装。

一、准备工作

下载:http://osgearth.org/wiki/Downloads

1.       CURL (curl-7.21.7.tar.gz): http://curl.haxx.se/download.html

2.       GDAL(gdal-1.8.0.tar.gz):http://trac.osgeo.org/gdal/wiki/DownloadSource

3.       GEOS(geos-3.2.2.tar.bz2):http://trac.osgeo.org/geos/

4.       Expat(expat-win32bin-2.0.1.exe): code:http://sourceforge.net/projects/expat/

exe文件:http://files.cnblogs.com/eaglezhao/expat-win32bin-2.0.1.rar

5.       libzip(libzip-windows.zip): code:http://nih.at/libzip/

编译好的包供下载:

vs2008: http://wush.net/trac/osgearth/raw-attachment/wiki/Downloads/libzip-windows.zip

vs2010:

http://files.cnblogs.com/eaglezhao/libzip(vs10).rar

6.       OSGEARTH(SVN上下载):svn:http://svn.github.com/gwaldron/osgearth.git(目前最新版是osgearth 2.0)

二、安装

1.       CURL

使用CMAKE进行配置:

生成.sln后编译即可

编译好后将目录下的include/curl下文件拷到E:\OSG\3rdparty\include\curl ,进行覆盖

编译好后将目录下的lib下的libcurl.dll文件拷到E:\OSG\3rdparty\bin ,进行覆盖

  1. GDAL

直接运行相应的.sln就可以了,我们VS2010打开makegdal10.sln直接编译。

GDAL编译完成后的文件存放于C:\warmerda\bld,包含文件include,lib,data,bin,可将它们拷贝到GDAL文件夹下,置于OSG目录下。最后进行以下工作:

将alg、gcore、ogr、port文件夹下的.h文件拷贝到include下,   将生成的lib、 dll 包括: gdal_i.lib gdal.lib cpl.lib(port目录下) ogr.lib(ogr目录下), 以及gdal18.dll

拷贝到D:\OSG\GDAL\lib下

  1. GEOS

直接运行geos-3.2.2 \build\msvc10,将生成的geosd.lib,geos.lib, geos_c_i.lib, geosd_c_i.lib拷贝到D:\OSG\geos\lib下,将geos-3.2.2\source\headers下的geos文件夹拷贝到include下

  1. Expat直接运行即可,安装好后将 Expat 2.0.1\Source\lib里的.h全拷贝到D:\OSG\Expat\include下,将Expat 2.0.1\bin下的文件全拷贝到D:\OSG\Expat\lib下。
  2. 文件结构如下图:

三、编译

使用CAMKE

打开OSGEARTH下的CMakeLists.txt

添加:

DYNAMIC_OSGEARTH  (BOOL变量) ON

OSG_DIR     (PATH)         D:/OSG/OpenSceneGraph

NOTFOUND的信息请清空,最后就是完成配置,生成解决方案。

编译前的VC项目设置

库目录和包含目录设置:

配置完成后,对ALL_BUILD进行Debug和Release两个版本的批生成

生成完成后,再对INSTALL进行生成。

四、环境配置

将D:\OSG\OSGEARTH\lib\Debug和Release文件夹下的文件全部拷贝到D:\OSG\OSGEARTH\bin下的Debug和Release文件夹下,再运行.exe,缺什么.dll,搜索拷贝进去即可(gdal18.dll在GDAL文件夹下)。

环境变量设置

OSG_FILE_PATH:D:\OSG\OSGEARTH\data;D:\OSG\GDAL\data;

PATH:E:\OSG\3rdParty\bin;D:\OSG\OSGEARTH\bin\Debug; D:\OSG\OSGEARTH\bin\Release;

五、测试

出现一个地球,恭喜你安装成功。

整个过程完成。

OSG-OSGEarth的更多相关文章

  1. [OSG][osgEarth]osgEarth例子程序简介

    1.osgearth_graticule:生成经纬线. 2.osgearth_annotation:各类标注(点.线.面.模型.文本等). 3.osgearth_city:加载一个城市三维模型,可以浏 ...

  2. [osg][osgEarth][原]基于OE自定义自由飞行漫游器(第二版)

    在初级版上,进行新的漫游方式调整 头文件: #pragma once //南水之源 20180101 #include <osgGA/CameraManipulator> #include ...

  3. [osg][osgEarth][原]基于OE自定义自由飞行漫游器(初级版)

    由于受够了OE的漫游器,想搞个可以在全球飞行的漫游器,所以就做了一个: 请无视我的起名规则······ 类头文件:EarthWalkManipulator.h #pragma once //南水之源 ...

  4. [原][osg][osgEarth][粒子特效]关于粒子特效库在osgEarth中,位置摆放问题,跟踪节点移动问题

    首先粒子在地球上位置摆放很简单: //传入的经纬度坐标 osg::Vec3d geoPoint; const SpatialReference* latLong = SpatialReference: ...

  5. [原][osg][osgEarth]osg::Matrix 父子节点的变化关系

    //osg::Matrix offsetmatrix 计算出子节点在父节点下的绝对坐标 //osg::Matrix offposition 用来计算当前节点相对父节点的位置 osg::Matrix o ...

  6. [原][osg][osgearth]简单的通过osgDB,读取高程tif,修改高程tif

    ReadResult result; osg::ref_ptr<osgDB::ReaderWriter> reader = osgDB::Registry::instance()-> ...

  7. [原][osg][osgearth]我眼中的osgearth

    看了一下,OE生成的可执行文件 除了osg库和第三方库 OE生产最多的dll就是 osgdb_osgearth_XXXX.dll了 这些都是为了通过osgDB机制加载earth的数据用的. 所以,我觉 ...

  8. [原][OSG][osgEarth]osgEarth例子程序简介

    1.osgearth_graticule:生成经纬线. 2.osgearth_annotation:各类标注(点.线.面.模型.文本等). 3.osgearth_city:加载一个城市三维模型,可以浏 ...

  9. 推荐一篇好文:OSG OSGearth vs2010编译

    链接:http://weibo.com/p/2304189447a8480102v2c2 此文作者把用到的相关代码包放在:http://pan.baidu.com/s/1qW9a4zU 按照步骤操作完 ...

  10. [原][osg][osgEarth]EarthManipulator关于oe漫游器的handle部分解读以及修改(仿照谷歌,修改oe漫游器中focal(视角切换)功能 续 二)

    bool EarthManipulator::handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa) ...

随机推荐

  1. hdu 1851 尼姆+巴什博弈

    先在每堆中进行巴什博弈,然后尼姆 #include<stdio.h> int main() { int T; int i,n; int ans,m,l; scanf("%d&qu ...

  2. 信号量互斥,王明学learn

    信号量互斥 信号量(又名:信号灯)与其他进程间通信方式不大相同,主要用途是保护临界资源(进程互斥).进程可以根据它判定是否能够访问某些共享资源.除了用于访问控制外,还可用于进程同步. 一.信号量分类 ...

  3. 第一篇:SOUI是什么?

    概述 用C++做产品最痛苦的是什么?肯定是做UI. SOUI的使命就是把痛苦的UI变化成快乐的UI. 什么?UI还能快乐?脑子进水了吗? 当你看完这个系统教程的时候相信你面对UI至少不会再痛苦.你可以 ...

  4. Sublime Text 3 安装Go语言相关插件gosublime

    1.打开Sublime Text,使用快捷键 ctrl+` (左上角Tab键上方,Esc键下方)或者使用菜单 View > Show Console menu,此时将出现Sublime Text ...

  5. Windows硬件断点-实现单步异常

    触犯单步异常 改变的是当前Eflags 而不是触发异常的Eflags 也就是 PUSHF MOV EAX, DWORD PTR[ESP]       OR EAX, 0x100       MOV D ...

  6. Linux内核创建一个新进程的过程

    “平安的祝福 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 进程在 ...

  7. SQLServer 维护脚本分享(10)索引

    --可添加索引的字段 migs.user_seeks,migs.avg_total_user_cost,migs.avg_user_impact,migs.last_user_seek ,mid.st ...

  8. ASP.Net MVC开发基础学习笔记(4):校验、AJAX与过滤器

    一.校验 — 表单不是你想提想提就能提 1.1 DataAnnotations(数据注解) 位于 System.ComponentModel.DataAnnotations 命名空间中的特性指定对数据 ...

  9. RDLC的部署(无法找到Microsoft.ReportViewer.ProcessingObjectModel.dll文件)

    CMD命令:C:\Windows\assembly\GAC_MSIL\ rdlc 相比微软的其他产品来说,做得还真是够烂的了,比水晶报表也烂得多. 但不知为何我还是宁可先择 rdlc.并且渐渐上手了. ...

  10. js html 一些技巧

    0.同步或异步ajax进行提交add update delete等. 在ajax中传参数可以和web端bean对应 1.ajax完成后跳转可以在js中使用 window.location.href=u ...