osgearth编译全过程

下面说一下osg-earth的完整编译过程。

需要下载的东西在这里:
osg(Open Scene Graph3.4.0)

osg-earth(2.7)

gdal(2.0.2)

curl(7.47.1)

zlib(1.2.8)


这些都是源码版的,需要自己编译。我是在Windows环境下编译的(Win7 x64系统),使用的CMake3.4.1

1.首先编译 osg,打开CMake GUI,在红框内,第一行选择osg的解压目录,第二行选择编译生成路径,可随意指定,习惯上指定为源码路径+build。osgearth编译全过程_第1张图片

单击Configure,选择你使用的VS版本,这里我使用VS2012 x64版。

没有意外的话,会看到 Configuring Done,然后单击Generate,顺利的话会看到Generating Done。

生成结束后切换到build文件夹,会看到有一堆生成的文件,选择OpenSceneGraph.sln用合适的Visual Studio工具打开 编译即可。

2.接下来编译gdal、curl、zlib库,这些都是osg-earth的依赖项。

编译curl和zlib的过程和osg类似,都是将源码路径和生成路径选对,配置、生成,这里不赘述。

gdal的编译比较特殊,首先看到gdal的解压目录下有一个叫做nmake.opt的文件,这里需要对该文件作一些修改。

osgearth编译全过程_第2张图片

打开nmake.opt,搜索GDAL_HOME,将其修改为自己实际的gdal解压目录:

osgearth编译全过程_第3张图片

然后若想要编译x64版本的gdal,搜索WIN64 将WIN64=YES之前的注释解开:

osgearth编译全过程_第4张图片

修改完成后,首先打开VS的命令行工具:

osgearth编译全过程_第5张图片

cd到gdal的解压目录,首先运行

nmake /f makefile.vc
需要等待一段时间进行编译,编译完成后运行

nmake /f makefile.vc devinstall
该命令会生成gdal库的API开发包,包括include、lib和bin文件夹。

gdal的编译可以参考这里

3.最后到了编译osg-earth

osgearth同样适用CMake进行编译,首先选择源码和生成路径,然后点击Configure

不同的是,此时会弹出配置失败的提示框,这是不要慌,我们可以看到Configure按钮下的框框内出现了一大堆红色的报错,这其实是因为osgearth依赖的库目录或文件Cmake没有检测到,这些是需要我们手动进行配置的。若仔细看的话,可以发现这些红色提示是按照缺少的库来进行分组的。

举例说明:

osgearth编译全过程_第6张图片

这段报错是说Cmake没找到OpenThreads库,其实这个库是我们编译osg的时候生成的,这时我们去看Configure按钮上边的红色报错区域:

osgearth编译全过程_第7张图片

可以看到Value列的内容为OPENTHREADS_LIBRARY-NOTFOUND和OPENTHREADS_LIBRARY_DEBUG-NOTFOUND,我们需要手动指定路径,这里我编译的debug版本的osgearth,所以只需要指定OPENTHREADS_LIBRARY_DEBUG值即可,可以在osg的目录下搜索OpenThreadsd.lib,然后将其完整路径填入


填完之后再次单击Configure按钮,会发现关于这个依赖项缺失的错误已经没有了。

其余的缺失项包括:osg编译生成的osgd.lib、osgDBd.lib、osgManipulatord.lib、osgShadowd.lib、osgViewerd.lib、osgWidgetd.lib等几个库,依次修改即可,

还有之前编译的gdal、curl和zlib库,都填上正确路径即可配置通过。然后单击Generate生成sln文件。

在build路径下找到OSGEARTH.sln打开编译即可。

4.编译完成后,将之前编译的所有库的最终文件(dll和exe)都拷贝到osgearth的生成目录下,打开cmd切换到该目录,执行osgearth_viewer.exe XXX:\osgearth\osgearth\tests\gdal_tiff.earth命令(osgearth_viewer.exe为查看器 第二个参数为地球配置文件的全路径),会看到如下地球(默认为全屏的 按F键切换到小窗口):
osgearth编译全过程_第8张图片


按S键可看到帧率等信息

osgearth编译全过程_第9张图片


你可能感兴趣的:(经验分享,Opengl)