概述
版本: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)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复