VS2015+OSG3.6.1编译问题

一. 数据准备

OSG源码下载 http://www.openscenegraph.org/index.php/download-section/stable-releases

CMake下载 https://cmake.org/download/

第三方依赖库(很关键) http://www.openscenegraph.com/index.php/download-section/dependencies

顺便给出官方Demo http://www.openscenegraph.com/index.php/download-section/data

二. 编译工作

1. 解压文件得到三个文件夹

E:\VSProject\OSG\OpenSceneGraph\

E:\VSProject\OSG\osg-3rdparty-cmake-master\

E:\VSProject\OSG\cmake-3.12.1-win64-x64\

2. 为了方便,打开CMake的GUI,填写最上面两个编辑框,第一个填OSG源码目录,第二个填CMake输出目录(新建一个就行,这里是CMakeExp)

第一次点击Configure,选择合适的编译器,这里是VS2015

点击finish过后,出现下图

勾选BUILD_OSG_EXAMPLES,将ACTUAL_3RDPARTY_DIR改为E:/VSProject/OSG/osg-3rdparty-cmake-master,再一次Configure,得到下图

勾选BUILD_MFC_EXAMPLE,再一次Configure

这样就可以了,点击Generate,就可以生成工程文件。

打开目录E:\VSProject\OSG\OpenSceneGraph\CMakeExp,找到.sln打开。

3. 在生成-批生成中勾选ALL_BUILD中的Debug和Release,然后生成,然后是漫长的等待……

在输出结果中,大部分为warning,无视之。发现一些错误,都来自osgviewerMFC工程,详细错误为

这种错误一般是定义WINVER和_WIN32_WINNT引起的(详细意义参考msdn),且要求二者值一致

在预定头stdafx.h中定位二者位置,未发现异常

但是根据明暗色可以发现_WIN32_WINNT已经定义了,那么查询该值

这样可以发现该值为0x601,明显与上面的定义值不一样,那么我们把上面的值改为0x601即可。

为了完整性,把下面的0x501也改成0x0601。

仅生成该项目,发现错误解决。最多会出现一个link错误,重新执行批生成即可。

4. 再一次点击批生成,这次勾选install的部分,生成。如果已经显示uninstall,跳过这一步。

5. 编译工作到此为止,明天进行Demo。

猜你喜欢

转载自blog.csdn.net/GX_lofo/article/details/81590168