我是靠谱客的博主 传统盼望,最近开发中收集的这篇文章主要介绍osgEarth教程(一)——编译配置(osgEarth+VS2015+win10),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

版本:OSG3.4.0 

    OSGEarth2.8

     VS2015 

     64位

     win10

OSG和OSGEarth已编译版本(关注公众号回复:OSG),需要的可下载后配置环境变量:

一、编译OSG

1、安装包准备

(1)OSG:

https://github.com/openscenegraph/OpenSceneGraph/tree/OpenSceneGraph-3.4.0

(2)osg-2rdparty:

https://ci.appveyor.com/api/projects/bjornblissing/osg-3rdparty-cmake/artifacts/v140-x64.zip?job=Environment%3A+Name%3Dv140-x64%2C+APPVEYOR_BUILD_WORKER_IMAGE%3DVisual+Studio+2015%2C+Generator%3DVisual+Studio+14+2015+Win64

(3)数据包

http://www.openscenegraph.org/index.php/download-section/data

(4)CMake工具

https://cmake.org/download/

2、编译准备

在D盘建立一个OSG文件夹,并将步骤1下载的安装包按如下方式放置

D:OSGOpenSceneGraph:源码解压后放于此 
D:OSG3rdParty:第三方依赖库解压后放于此 
D:OSGdata:数据包解压后放于此。

3、源码安装

(1)安装CMake工具并打开

(2)如下所示,填写源码路径和结果路径

(3)点击configure,并按照下图进行配置,然后点击Finish。

4、在红色列表中找到ACTUAL_3RDPARTY_DIR,并将其值设置为D:/OSG/3rdParty,找到BUILD_OSG_EXAMPLES值设置为ON,CMAKE_INSTALL_PREFIX,值为第一步中的结果路径。

 
5、点击Generate,自此建构完成。 

4、编译

(1)在D:/OSG/OSGbuild下,找到OpenSceneGraph.sln并打开,点击VS菜单栏选择 生成->批量生成 ,对All_BUILD进行生成,选择(Debug和Release两个版本),这段编译时间很长,大概 4-5个小时。如果前面步骤没有错误的话,这一步不会报错,只有警告。设置详情如下图所示: 

运行结果:

(2)、第1步完成后,再对INSTALL也进行相应生成编译。这段时间相应会短一点。

运行结果:

5、配置环境变量

(1)、添加系统变量:OSG_FILE_PATH,变量值为D:OSGdata(与第二步中所建目录相对应)。 
(2)、在PATH变量中添加:D:OSGOSGbuildbin。 
配置完成后,在命令行输入osgversion或osglogo进行测试。 

6、测试

(1)新建C++控制台项目。

(2)右键项目,选择“属性”,顶部平台选择x64,左侧配置属性选择“VC++目录”,在包含目录添加:结果目录中的include目录(D:OSGOSGbuildinclude)。在库目录添加:结果目录中的lib目录(D:OSGOSGbuildlib)。

(3)打开项目属性的链接器,选择“输入”,在附加依赖项添加: 

OpenThreadsd.lib 
osgd.lib 
osgDBd.lib 
osgUtild.lib 
osgGAd.lib 
osgViewerd.lib 
osgTextd.lib 

(4)新建cpp文件中输入以下代码:

#include "stdafx.h"
#include<osgViewer/Viewer>
#include<osgDB/ReadFile>
int main(int argc, char **argv)
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
return viewer.run();
}

测试结果:

 

注意:如果调试时显示计算机中丢失osg130-osgDBd.dll就重启电脑(对的 就是这样)

注:如果提示缺少zlib.dll,这两个dll均可以在OSG依赖的第三方库3rdParty文件夹中可以找到,注意x86与x64选择,将这两个dll拷贝至OSG的bin目录(你加入环境变量path的路径)下即可,然后再测试

二、编译安装OSGEarth依赖项

1、编译Curl(本步骤可以略去)

(1)下载Curl-7.61.0并解压到D:OSGcurl-7.61.0,在D:OSGcurl-7.61.0文件夹下创建build目录。

下载链接:https://curl.haxx.se/download/curl-7.61.1.zip

(2)打开CMake,并按照如下进行设置

(3)点击configure,并按照下图进行设置,点击Finish。

(4)找到CMAKE_INSTALL_PREFIX,填入curl-7.61.0源代码路径D:OSGcurl-7.61.0,再次configure后点击Generate,此时就会在build中生成curl.sln的编译工程。

(5)打开build中的curl.sln,点击菜单栏 生成->批生成,对All_BUILD进行生成,选择(Debug和Release两个版本)。

注:若提示“Cannot open include file: 'unistd.h': No such file or directory”

解决方案:https://blog.csdn.net/mangobar/article/details/6314700

(6)点击菜单栏 生成->批生成,对INSTALL也进行相应生成编译进行生成,选择(Debug和Release两个版本)。

(7)在build目录中搜索*.dll,*.lib,*.h文件,将libcurl.dll和libcurld.dll拷贝到D:OSG3rdPartybin目录下,将libcurl.lib和libcurd.lib文件拷贝到D:OSG3rdPartylib目录下,将*.h文件拷贝到D:OSG3rdPartyincludecurl目录下。

2、编译GEOS

(1)下载GEOS:http://download.osgeo.org/geos/geos-3.5.1.tar.bz2,解压后放到D:OSGgeos-3.5.1,创建build目录,通过CMake打开后进行configure。

(2)configure会报错,首先设置CMAKE_INSTALL-PREFIX定位到geos源码文件目录:D:OSGgeos-3.5.1;

(3)然后打开链接https://trac.osgeo.org/geos/browser/trunk/cmake/modules

下载GenerateSourceGroups.cmake文件。

(4)将下载后的文件放到使用的cmake3.3.12中,我使用cmake的文件路径为D:Program FilesCMake,则将刚才下载的文件拷贝到D:Program FilesCMakesharecmake-3.12Modules文件下。然后点击configure,不报错了,点击generate,生成编译工程文件,然后打开vs2015工程文件,点击批生成,如图。

(5)在build目录中,将D:OSGgeos-3.5.1bin目录下文件拷贝到D:OSG3rdPartybin目录下,将D:OSGgeos-3.5.1lib目录下文件拷贝到D:OSG3rdPartylib目录下,将D:OSGgeos-3.5.1includegeos目录下文件文件拷贝到D:OSG3rdPartyincludegeos目录下。

3、编译GDAL

(1)下载gdal下载地址:http://download.osgeo.org/gdal/2.2.1/gdal221.zip

2)修改编译文件

解压后的文件中应该有一个nmake.opt文件,在编译之前需要修改nmake.opt中的一些配置。

a、GDAL_HOME = “C:warmerdabld”,编译后的生成的头文件、静态库、动态库将会存储到这个路径。我在D盘新建了文件夹gdal2.21,然后修成了D:gdal2.21。

b、”#WIN64=YES”,编译64位GDAL时,要删除前面的#。

c、 将

改为:

因为编译的时候会报错,修改之后就不编译ODBC,然后就用不了ODBC,不过关系不大。

 

(3) 编译

a. (以管理员的身份运行)进入VS2015 X64 本机工具命令提示符,在菜单栏的Visual Studio 2015文件夹下

b. 使用命令行,进入到源代码目录

c. 依次输入:

nmake -f makefile.vc

nmake /f makefile.vc install

nmake /f makefile.vc devinstal

第一个命令是编译GDAL

第二个、第三个命令是将生成的头文件、静态库、动态库复制到GDAL_HOME目录。如果需要编译debug模式,就将第一个命令改成nmake -fmakefile.vc DEBUG=1

注:若提示缺少'xcopy',从C:WINDOWSsystem32文件夹下拷贝xcopy.exe到D:Visual Studio2015VCbin目录下。

(4) 将D:OSGgdal-2.2.1bin目录下文件拷贝到D:OSG3rdPartybin目录下,将D:OSGgdal-2.2.1lib目录下文件拷贝到D:OSG3rdPartylib目录下,将D:OSGgdal-2.2.1include目录下文件文件拷贝到D:OSG3rdPartyincludegdal目录下。

4. libzip

libzip(vs10)需要下载(http://pan.baidu.com/s/1o70sB6E 密码:n9l6),把解压后的头文件放到G:OSGCoreBulidOpenSceneGraphic3rdPartyincludelibzip下,*.lib放到lib文件夹中,*.dll文件放到bin文件夹中。

5. zlip

直接使用3rdParty/lib下面的zlib.lib和zlibD.lib即可

6. 编译sqlite

1.首先下载两个压缩包:http://www.sqlite.org/download.html

https://www.sqlite.org/2018/sqlite-dll-win64-x64-3260000.zip

https://www.sqlite.org/2018/sqlite-amalgamation-3260000.zip

2.解压后,把sqlite-dll-win64-x64-3260000下的两个文件放到sqlite-amalgamation-3260000解压后的目录下,解压后文件夹重命名为sqlite3。组合成下面所示:

3.可按照下面链接中的方法进行编译:

https://www.cnblogs.com/baipengchao/p/5123346.html

4.按照链接中的方法生成debug 和release版本,分别命名为sqlite3d.lib|sqlite3d.dll,sqlite3.lib|sqlite3.dll

5.把sqlite3.lib 和sqlite3.dll拷贝到

D:OSG3rdParty3rdPartybin、D:OSG3rdParty3rdPartylib

三、编译安装OSGEarth

1、下载OSGEarth解压后创建build文件夹

下载链接:https://github.com/gwaldron/osgearth/archive/osgearth-2.9.zip

注:如果版本不合适,可在该链接下载其他版本进行尝试:https://github.com/gwaldron/osgearth/releases

 

 

2、与前面的方法相似,通过CMake编译生成sln

3、指定OSGDIr

4、指定3rdParty路径

5、依次对CURL;GDAL;GEOS;ZLIB进行处理,然后勾上Advanced,点击Configure

CURL:

GDAL:

GEOS:

 

6、编译OSGEarth

(1)进入D:OSGosgearthbuild目录下,打开OSGEARTH.sln

(2)选择菜单栏“视图”—>其它窗口-->属性管理器,只需配置一个All_build的debug或Realse属性,所有的项目工程就都具有了相同的包含目录和库目录。设置ALL_BUILD的include 包含目录和库目录:

编译osgearth的过程中,有几个项目需要设置include包含目录,主要有:

osgEarth

osgEarthAnnotation

osgEarthFeatures

osgEarthSymbology

osgEarthUtil

Pluginsosgearth_arcgis

Pluginsosgearth_feature_ogr

Pluginsosgearth_feature_tfs

Pluginsosgearth_feature_wfs

Sampleosgearth_featureinfo

3、环境变量设置及测试

软件部署(只是列出了debug,release于debug相同)

osgEarth软件包主要包括五个目录:bin,data,include,lib,src。

1. d:OSGCore文件夹下建立一个文件夹path;d:OSGCorePath,在path下建立上述五个子目录,如下图所示:

2. 组织bin目录,bin主要包含dll和exe,如下表所示:

拷贝第一项:定位d:OSGCoreBulidOpenSceneGraphicbin,搜索*.dll和*.exe,拷贝到bin

拷贝第二项:定位d:OSGCoreOSGEarth,,搜索*.dll,拷贝到bin

拷贝第三项:定位d:OSGCoreOSGEarth,,搜索*.exe,拷贝到bin

拷贝第四项:定位d:OSGCoreBulidOpenSceneGraphic3rdParty,搜索*.dll,拷贝到bin

3. 组织data目录:

首先把d:OSGCoreBulidOpenSceneGraphicdata下的所有拷贝到data

然后把d:OSGCoreBulidosgearth-osgearth-2.8.0data下的所有拷贝到data

首先把d:OSGCoreBulidosgearth-osgearth-2.8.0tests下的所有拷贝到data

4.组织include

首先把d:OSGCoreBulidOpenSceneGraphicinclude下的所有拷贝到include

然后把d:OSGCoreBulidosgearth-osgearth-2.8.0src下的所有拷贝到include,可以把该目录下的.cpp文件删除,保留.h头文件。

5.组织Lib和dll

拷贝第一项:定位d:OSGCoreBulidOpenSceneGraphiclib,搜索*.lib,拷贝到lib

拷贝第二项:定位d:OSGCoreOSGEarthx64Debug,搜索*.lib,拷贝到lib

拷贝第三项:定位d:OSGCoreBulidOpenSceneGraphic3rdParty,搜索*.lib,拷贝到lib

把osg环境变量进行一定的修改:

OSG_FILE_PATH:d:OSGCorePathdata

PATH:d:OSGCorePathbin

软件测试

打开cmd,输入 osgearth_viewer clouds.earth 观察会不会出现下面的图,出现即表示编译成功

欢迎关注我的公众号:

编程技术与生活(ID:hw_cchang)

 

最后

以上就是传统盼望为你收集整理的osgEarth教程(一)——编译配置(osgEarth+VS2015+win10)的全部内容,希望文章能够帮你解决osgEarth教程(一)——编译配置(osgEarth+VS2015+win10)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部