OSG-OSGEarth
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.libSearch "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.libSearch "Osg_DIR"
OSG_DIR = D:/Code/Osg
接下来勾选Advanced,然后Search "NOTFOUND",把搜到的变量全部给删了,包括OSG的那一堆DIR、Include和Lib。
然后Configure、Generate,可能还会遇到一些小问题,把没删干净的NOTFOUND接着删了,就可以了。
参考链接:
转: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 ,进行覆盖
- 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下
- 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下
- Expat直接运行即可,安装好后将 Expat 2.0.1\Source\lib里的.h全拷贝到D:\OSG\Expat\include下,将Expat 2.0.1\bin下的文件全拷贝到D:\OSG\Expat\lib下。
- 文件结构如下图:
三、编译
使用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的更多相关文章
- [OSG][osgEarth]osgEarth例子程序简介
1.osgearth_graticule:生成经纬线. 2.osgearth_annotation:各类标注(点.线.面.模型.文本等). 3.osgearth_city:加载一个城市三维模型,可以浏 ...
- [osg][osgEarth][原]基于OE自定义自由飞行漫游器(第二版)
在初级版上,进行新的漫游方式调整 头文件: #pragma once //南水之源 20180101 #include <osgGA/CameraManipulator> #include ...
- [osg][osgEarth][原]基于OE自定义自由飞行漫游器(初级版)
由于受够了OE的漫游器,想搞个可以在全球飞行的漫游器,所以就做了一个: 请无视我的起名规则······ 类头文件:EarthWalkManipulator.h #pragma once //南水之源 ...
- [原][osg][osgEarth][粒子特效]关于粒子特效库在osgEarth中,位置摆放问题,跟踪节点移动问题
首先粒子在地球上位置摆放很简单: //传入的经纬度坐标 osg::Vec3d geoPoint; const SpatialReference* latLong = SpatialReference: ...
- [原][osg][osgEarth]osg::Matrix 父子节点的变化关系
//osg::Matrix offsetmatrix 计算出子节点在父节点下的绝对坐标 //osg::Matrix offposition 用来计算当前节点相对父节点的位置 osg::Matrix o ...
- [原][osg][osgearth]简单的通过osgDB,读取高程tif,修改高程tif
ReadResult result; osg::ref_ptr<osgDB::ReaderWriter> reader = osgDB::Registry::instance()-> ...
- [原][osg][osgearth]我眼中的osgearth
看了一下,OE生成的可执行文件 除了osg库和第三方库 OE生产最多的dll就是 osgdb_osgearth_XXXX.dll了 这些都是为了通过osgDB机制加载earth的数据用的. 所以,我觉 ...
- [原][OSG][osgEarth]osgEarth例子程序简介
1.osgearth_graticule:生成经纬线. 2.osgearth_annotation:各类标注(点.线.面.模型.文本等). 3.osgearth_city:加载一个城市三维模型,可以浏 ...
- 推荐一篇好文:OSG OSGearth vs2010编译
链接:http://weibo.com/p/2304189447a8480102v2c2 此文作者把用到的相关代码包放在:http://pan.baidu.com/s/1qW9a4zU 按照步骤操作完 ...
- [原][osg][osgEarth]EarthManipulator关于oe漫游器的handle部分解读以及修改(仿照谷歌,修改oe漫游器中focal(视角切换)功能 续 二)
bool EarthManipulator::handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa) ...
随机推荐
- oracle 10g\11g用imp导入数据的时候报错:ORA-01658: 无法为表空间 MAXDATA 中的段创建 INITIAL 区 错误解决
备份文件是从11g中通过exp命令导出的,在10g下使用imp导入出现了上述错误,以为是低版本的不支持高版本的备份,于是使用11g测试,还是上面的问题. 其实是表空间大小不够的问题,下面是网上的解答: ...
- Oracle11g在使用exp导出时不导出空表问题的解决办法
11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segmen ...
- WPF实现TextBox水印效果
在日常项目中,一个TextBox需要输入用户名,我们通常的做法是先用一个TextBlock来说明,例如下面的截图: 今天将使用另外一种方式来展示,使用水印的方式.请参考下面的代码: <Windo ...
- Java Socket编程(转)
Java Socket编程 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首 ...
- 移动 Web 开发技巧
1.使用click会出现绑定点击区域闪一下的情况,解决:给该元素一个样式如下 -webkit-tap-highlight-color: rgba(0,0,0,0); 2.用iphone或ipad浏览很 ...
- phpexecel 导入导出,格式
1.日期时间合并到c中 =a1 &b1 或 =a1 + b1 这些都是运算符 2.此时c1的值是这条公式,而并不是公式运算的结果 复制c,粘贴到d,选择粘贴值 3.此时c是时间日期格式的,如需 ...
- windows下自动关机
定时:at 00:00 shutdown -s //在00:00时关机 倒计时:shutdown -s -t 3600 //3600s后关机 取消:shutdown -a
- express-17 持久化
简介 所有网站和Web应用程序(除了最简单的)都需要某种持久化方式,即某种比易失性内存更持久的数据存储方式,这样当遇到服务器宕机.断电.升级和迁移等情况时数据才能保存下来. 文件系统持久化 实现持久化 ...
- Python profiling
Profiling(性能调试)是我一直很感兴趣的一个话题,之前给大家介绍过Datadog这个工具,今天我们来看看Python语言中有哪些方法来做Profiling. Poorman's Profile ...
- POJ2976 Dropping tests(01分数规划)
题目大概说给n个二元组Ai和Bi,要去掉k个,求余下的100*∑Ai/∑Bi的最大值. 假设要的最大的值是ans,令Di=Ai-ans*∑Bi,对Di排序取最大的n-k个,如果∑Ai-ans*∑Bi& ...