(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/
在D盘建立一个OSG文件夹,并将步骤1下载的安装包按如下方式放置
D:\OSG\OpenSceneGraph:源码解压后放于此
D:\OSG\3rdParty:第三方依赖库解压后放于此
D:\OSG\data:数据包解压后放于此。
(1)安装CMake工具并打开
(2)如下所示,填写源码路径和结果路径
(3)点击configure,并按照下图进行配置,然后点击Finish。
4、在红色列表中找到ACTUAL_3RDPARTY_DIR,并将其值设置为D:/OSG/3rdParty,找到BUILD_OSG_EXAMPLES值设置为ON,CMAKE_INSTALL_PREFIX,值为第一步中的结果路径。
(1)在D:/OSG/OSGbuild下,找到OpenSceneGraph.sln并打开,点击VS菜单栏选择 生成->批量生成 ,对All_BUILD进行生成,选择(Debug和Release两个版本),这段编译时间很长,大概 4-5个小时。如果前面步骤没有错误的话,这一步不会报错,只有警告。设置详情如下图所示:
运行结果:
(2)、第1步完成后,再对INSTALL也进行相应生成编译。这段时间相应会短一点。
运行结果:
(1)、添加系统变量:OSG_FILE_PATH,变量值为D:\OSG\data(与第二步中所建目录相对应)。
(2)、在PATH变量中添加:D:\OSG\OSGbuild\bin。
配置完成后,在命令行输入osgversion或osglogo进行测试。
(1)新建C++控制台项目。
(2)右键项目,选择“属性”,顶部平台选择x64,左侧配置属性选择“VC++目录”,在包含目录添加:结果目录中的include目录(D:\OSG\OSGbuild\include)。在库目录添加:结果目录中的lib目录(D:\OSG\OSGbuild\lib)。
(3)打开项目属性的链接器,选择“输入”,在附加依赖项添加:
OpenThreadsd.lib
osgd.lib
osgDBd.lib
osgUtild.lib
osgGAd.lib
osgViewerd.lib
osgTextd.lib
(4)新建cpp文件中输入以下代码:
#include "stdafx.h"
#include
#include
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的路径)下即可,然后再测试
(1)下载Curl-7.61.0并解压到D:\OSG\curl-7.61.0,在D:\OSG\curl-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:\OSG\curl-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:\OSG\3rdParty\bin目录下,将libcurl.lib和libcurd.lib文件拷贝到D:\OSG\3rdParty\lib目录下,将*.h文件拷贝到D:\OSG\3rdParty\include\curl目录下。
(1)下载GEOS:http://download.osgeo.org/geos/geos-3.5.1.tar.bz2,解压后放到D:\OSG\geos-3.5.1,创建build目录,通过CMake打开后进行configure。
(2)configure会报错,首先设置CMAKE_INSTALL-PREFIX定位到geos源码文件目录:D:\OSG\geos-3.5.1;
(3)然后打开链接https://trac.osgeo.org/geos/browser/trunk/cmake/modules
下载GenerateSourceGroups.cmake文件。
(4)将下载后的文件放到使用的cmake3.3.12中,我使用cmake的文件路径为D:\Program Files\CMake,则将刚才下载的文件拷贝到D:\Program Files\CMake\share\cmake-3.12\Modules文件下。然后点击configure,不报错了,点击generate,生成编译工程文件,然后打开vs2015工程文件,点击批生成,如图。
(5)在build目录中,将D:\OSG\geos-3.5.1\bin目录下文件拷贝到D:\OSG\3rdParty\bin目录下,将D:\OSG\geos-3.5.1\lib目录下文件拷贝到D:\OSG\3rdParty\lib目录下,将D:\OSG\geos-3.5.1\include\geos目录下文件文件拷贝到D:\OSG\3rdParty\include\geos目录下。
(1)下载gdal下载地址:http://download.osgeo.org/gdal/2.2.1/gdal221.zip
2)修改编译文件
解压后的文件中应该有一个nmake.opt文件,在编译之前需要修改nmake.opt中的一些配置。
a、GDAL_HOME = “C:\warmerda\bld”,编译后的生成的头文件、静态库、动态库将会存储到这个路径。我在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:\WINDOWS\system32文件夹下拷贝xcopy.exe到D:\Visual Studio2015\VC\bin目录下。
(4) 将D:\OSG\gdal-2.2.1\bin目录下文件拷贝到D:\OSG\3rdParty\bin目录下,将D:\OSG\gdal-2.2.1\lib目录下文件拷贝到D:\OSG\3rdParty\lib目录下,将D:\OSG\gdal-2.2.1\include目录下文件文件拷贝到D:\OSG\3rdParty\include\gdal目录下。
libzip(vs10)需要下载(http://pan.baidu.com/s/1o70sB6E 密码:n9l6),把解压后的头文件放到G:\OSGCore\Bulid\OpenSceneGraphic\3rdParty\include\libzip下,*.lib放到lib文件夹中,*.dll文件放到bin文件夹中。
直接使用3rdParty/lib下面的zlib.lib和zlibD.lib即可
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:\OSG\3rdParty\3rdParty\bin、D:\OSG\3rdParty\3rdParty\lib
下载链接:https://github.com/gwaldron/osgearth/archive/osgearth-2.9.zip
注:如果版本不合适,可在该链接下载其他版本进行尝试:https://github.com/gwaldron/osgearth/releases
CURL:
GDAL:
GEOS:
(1)进入D:\OSG\osgearth\build目录下,打开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
软件部署(只是列出了debug,release于debug相同)
osgEarth软件包主要包括五个目录:bin,data,include,lib,src。
1. d:\OSGCore文件夹下建立一个文件夹path;d:\OSGCore\Path,在path下建立上述五个子目录,如下图所示:
2. 组织bin目录,bin主要包含dll和exe,如下表所示:
拷贝第一项:定位d:\OSGCore\Bulid\OpenSceneGraphic\bin,搜索*.dll和*.exe,拷贝到bin
拷贝第二项:定位d:\OSGCore\OSGEarth,,搜索*.dll,拷贝到bin
拷贝第三项:定位d:\OSGCore\OSGEarth,,搜索*.exe,拷贝到bin
拷贝第四项:定位d:\OSGCore\Bulid\OpenSceneGraphic\3rdParty,搜索*.dll,拷贝到bin
3. 组织data目录:
首先把d:\OSGCore\Bulid\OpenSceneGraphic\data下的所有拷贝到data
然后把d:\OSGCore\Bulid\osgearth-osgearth-2.8.0\data下的所有拷贝到data
首先把d:\OSGCore\Bulid\osgearth-osgearth-2.8.0\tests下的所有拷贝到data
4.组织include
首先把d:\OSGCore\Bulid\OpenSceneGraphic\include下的所有拷贝到include
然后把d:\OSGCore\Bulid\osgearth-osgearth-2.8.0\src下的所有拷贝到include,可以把该目录下的.cpp文件删除,保留.h头文件。
5.组织Lib和dll
拷贝第一项:定位d:\OSGCore\Bulid\OpenSceneGraphic\lib,搜索*.lib,拷贝到lib
拷贝第二项:定位d:\OSGCore\OSGEarth\x64\Debug,搜索*.lib,拷贝到lib
拷贝第三项:定位d:\OSGCore\Bulid\OpenSceneGraphic\3rdParty,搜索*.lib,拷贝到lib
把osg环境变量进行一定的修改:
OSG_FILE_PATH:d:\OSGCore\Path\data
PATH:d:\OSGCore\Path\bin
软件测试
打开cmd,输入 osgearth_viewer clouds.earth 观察会不会出现下面的图,出现即表示编译成功
编程技术与生活(ID:hw_cchang)