osgEarth开放视景建设平台编译教程(三)

1.1文件目录构建

第一步:我们在D盘编译osgEarth,首先建立一个文件夹:D:osgEarth,把源代码放到该文件夹,重命名为osgEarth-2.8.2:

第二步:在D:osgEarthbuild建立一个build文件夹.

第三步:把D:OSG3rdParty拷贝到C:Open Scene Graph。

第四步:把C:Open Scene Graph文件夹拷贝到D:osgEarth下

osgEarth开放视景建设平台编译教程(三)

1.2 编译gdal

1)下载gdal

2)打开makegdal10.sln,编译结束后,在C:warmerdabldbin下拷贝gdal18.dll到

D:osgEarthOpen Scene Graph3rdPartybin下面。

3)把gdal.lib, gdal_i.lib ;port目录下的cpl.lib和ogr目录下的 ogr.lib拷贝到:

D:osgEarthOpen Scene Graph3rdPartylib下。

osgEarth开放视景建设平台编译教程(三)

4)把alg,gcore,ogr,port文件夹下的.h文件拷贝到D:osgEarthOpen Scene Graph3rdPartyincludegdal目录下,可以用搜索文件的方法把下载的gdal中的.h文件都拷贝到D:osgEarthOpen Scene Graph3rdPartyincludegdal目录下:

osgEarth开放视景建设平台编译教程(三)

1.3编译libcurl

1)下载解压libcurl,打开vsvc6下的文件,编译debug 和release版本 。

2)把生成的libcurl.dll 和 libcurlD.lib拷贝到D:osgEarthOpen Scene Graph3rdPartybin

3)把D:osgEarthcurl-7.30.0includecurl下的文件拷贝合并到D:osgEarthOpen Scene Graph3rdPartyincludecurl

1.4 编译Geos

1) 下载geos,解压到D:osgEarth

2) 打开D:osgEarthgeos-3.2.3buildmsvc80下的geos 转化为vs2010,进行编译

3)分别编译debug 和release版本下的geos_c_dll和geos_lib项目。

4)拷贝D:osgEarthgeos-3.2.3buildmsvc80Debug下的geosd.lib ,geosd_c_i.lib到D:osgEarthOpen Scene Graph3rdPartylib;geosd_c.dll到

D:osgEarthOpen Scene Graph3rdPartybin

osgEarth开放视景建设平台编译教程(三)

osgEarth开放视景建设平台编译教程(三)

5)把D:osgEarthgeos-3.2.3sourceheadersgeos文件夹拷贝到D:osgEarthOpen Scene Graph3rdPartyinclude。

1.5 编译sqlite3

1)下载两个压缩包:解压后,把sqlite_dll_win32-x86_3071700下的两个文件放到sqlite-amalgamation-3071700解压后的目录下,解压后文件夹重命名为sqlite3。组合成下面所示:

osgEarth开放视景建设平台编译教程(三)

2)新建动态连接库项目:win32控制台dll,空项目。

osgEarth开放视景建设平台编译教程(三)

3)拷贝.h,.c,.def 3个文件到D:osgEarthsqlite3sqlite3sqlite3下面

4)添加头文件sqlite3.h到头文件;添加源文件sqlite3.c,sqlite3.def到源文件。

5)设置项目属性

SQLITE_ENABLE_COLUMN_METADATA SQLITE_ENABLE_RTREE

osgEarth开放视景建设平台编译教程(三)

osgEarth开放视景建设平台编译教程(三)

6)生成debug 和release版本,分别命名为sqlite3d.lib|sqlite3d.dll, sqlite3.lib|sqlite3.dll

7)把sqlite3.lib 和sqlite3.dll拷贝到D:osgEarthOpen Scene Graph3rdPartybin

D:osgEarthOpen Scene Graph3rdPartylib

1.6 编译minizip

就用3rdParty/lib下面的minizip.lib和minizipD.lib,但头文件需要下载,把解压后的头文件放到D:osgEarthOpen Scene Graph3rdPartyincludeminizip下:

osgEarth开放视景建设平台编译教程(三)

osgEarth开放视景建设平台编译教程(三)

1.7 cmake设置

打开cmake,设置如下:

osgEarth开放视景建设平台编译教程(三)

点击configure,报错:

osgEarth开放视景建设平台编译教程(三)

第三步:设置OSG_DIR,设置为D:/osgEarth/Open Scene Graph,点击configure,osg其他的选项会自动识别

第四步:THIRD_PARTY_DIR,设置后configure一下

第五步:zlib,设置后configure一下

第六步:gdal,设置后configure一下

第七步:miniMap,设置后configure一下

第八步:经过上述配置,已经可以不报错通过。

第十步:generate后,打开D:osgEarthbuild 下的osgearth.sln

osgEarth开放视景建设平台编译教程(三)

osgEarth开放视景建设平台编译教程(三)

1.8 编译

1.设置ALL_BUILD的include 包含目录:

osgEarth开放视景建设平台编译教程(三)

2.开始编译

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

1)osgEarthSymbology

2)osgEarthFeatures

3)osgearth_arcgis

4)Sample osgearth_featureinfo

5) osgEarthUtil

6)osgearth_feature_ogr

7)osgearth_feature_wfs

8)osgearth_feature_tfs

给上述8个每一个手动添加D:osgEarthOpen Scene Graph3rdPartyinclude包含目录,如下图所示:

osgEarth开放视景建设平台编译教程(三)

osgEarth开放视景建设平台编译教程(三)

二、选择”生成”菜单下的”批生成”子菜单, 配置如下:

编译时间比较长,几个小时。

全部成功总共178项。

osgEarth开放视景建设平台编译教程(三)

1.9 软件部署

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

第一,在C盘根目录下建立一个文件夹:OpenSceneGraph,在OpenSceneGraph下建立上述四个子目录,如下图所示:

osgEarth开放视景建设平台编译教程(三)

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

拷贝第一项:定位C:Open Scene Graphbin,搜索*.dll,拷贝到bin

拷贝第二项:因为osg的例子只生成了一部分所以只有生成的一部分18个

拷贝第三项:定位D:osgEarthbuild,,搜索*.dll,拷贝到bin

拷贝第四项:定位D:osgEarthbuild,,搜索*.exe,拷贝到bin

拷贝第五项:定位D:osgEarthOpen Scene Graph3rdParty,搜索*.dll,拷贝到bin

第三,组织data目录:

首先把D:osgEarthosgearth-2.8.2data下的所有拷贝到data

然后把D:OSGData下的所有拷贝到data

首先把D:osgEarthosgearth-2.8.2tests下的所有拷贝到data

第四,组织include

首先把C:Open Scene Graphinclude下的所有拷贝到include

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

第五,组织Lib同dll

拷贝第一项:定位C:Open Scene Graphlib,搜索*.lib,拷贝到lib

拷贝第二项:定位D:osgEarthbuild,,搜索*.dll,拷贝到lib

拷贝第三项:定位D:osgEarthOpen Scene Graph3rdParty,搜索*.lib,拷贝到lib

1.10 环境变量设置

把osg环境变量:OSG_FILE_PATH,Path相应的变量中的Open Scene Graph更改为OpenSceneGraph

1.8 最后程序验证

Cmd

Osgversion

Osgearth_viewer c:OpenScenGraphdatagdal_tiff.earth

osgEarth开放视景建设平台编译教程(三)

来源:小丁圈

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月7日
下一篇 2022年1月7日

相关推荐