WIN10+OSG+VS2017

本文详细介绍了在Windows 10操作系统上使用Visual Studio 2017搭建OpenSceneGraph (OSG) 开发环境的步骤,包括所需资料准备、文件夹设置、CMake配置、编译过程、库文件拷贝、环境变量配置及测试方法,同时分享了在搭建过程中可能遇到的问题及其解决方案。


)

WIN10系统下OSG+VS2017环境搭建及问题解决方案

转载原文:https://www.cnblogs.com/rcg714786690/p/12303659.html

为了方便下载资料直接给出网盘链接,其中包含所需库和编译完成的release版本。链接: https://pan.baidu.com/s/1cGlQ_ZriZm9mRr_t7EHe5Q 提取码: x3ex

一、准备资料

一、资料准备
1、OSG源码官网下载地址:http://www.openscenegraph.org/index.php/download-section/stable-releases或者OSGChina官网:http://www.osgchina.org/downloads-son.php?id=34,本人使用的是OpenSceneGraph-OpenSceneGraph-3.6.3.zip
2、OSG第三方依赖库下载地址:http://www.openscenegraph.org/index.php/download-section/dependencies,找到相对应VS版本的库进行下载,本人使用的是3rdParty_VS2017_v141_x64_V11_full.7z
3、数据包下载地址:http://www.openscenegraph.org/index.php/download-section/data,本人使用的是OpenSceneGraph-Data-3.4.0.zip
4、编码工具下载地址:https://cmake.org/download/,本人使用的是cmake-3.12.0-rc1-win64-x64.msi,下载后进行安装。
5、ffmpeg的资源包(64位开发版):https://ffmpeg.zeranoe.com/builds/win64/dev/。OSG可以通过ffmpeg插件来实现播放视频的功能,在编译OSG的时候要确保全部成功编译才可以顺利使用插件功能。本人在编译OSG的时候就是这个插件项目编译有问题,一直没有编译成功。究其原因发现,本人之前安装过OpenCASCADE,它会错误的致使Cmake编译ffmpeg项目时配置错误,(这是个大坑,三天才跳出来),所以本人下载了ffmpeg的资源包,版本是ffmpeg-4.0-win64-dev.zip,在Cmake时手动进行相关的FFMPEG配置。注:没有安装过OpenCASCADE的人暂不清楚第5步需不需要,可尝试。

为了方便下载直接给出网盘链接
链接: https://pan.baidu.com/s/1cGlQ_ZriZm9mRr_t7EHe5Q 提取码: x3ex

二、文件夹准备

在C盘之外的盘符下新建OSG文件夹,将下载的资料解压到该文件夹下,注意解压方式选择“解压到”,只定位到OSG文件夹即可,它会自己产生相应文件夹。
1、源码解压后如下图
源码图
2、第三方库解压后如下图
第三方库解压
3、数据包解压后如下图
data解压
4、在OSG文件夹下新建【OSGbuild】文件夹,作为Cmake编译输出文件夹。
5、ffmpeg解压后如下图
ffmpeg解压
6、修改D:\OSG\OpenSceneGraph-OpenSceneGraph-3.6.3\CMakeModules\FindFFmpeg.cmake文件,在SET(FFMPEG_FOUND “NO”)之后添加SET(STDINT_OK TRUE),如下图,(参考:https://blog.youkuaiyun.com/zhuquanfu/article/details/84635316)
修改FindFFmpeg

三、安装码源

1、从路径D:\OSG\cmake-3.12.0-rc1-win64-x64\bin,打开CMake (cmake-gui).exe,指定源码位置和编译输出位置,勾选Grouped,如下图
指定路径
2、点击一次Configure,出现下图所示,选择本机的VS2017版本,Win64代表编译输出64位工程,点击Finish,开始进行配置
工程版本3、此时Cmake界面窗口出现编译的信息,而build文件夹也产生了相应的文件。【原文图】如下,
注意:标红部分是需要进行确认的
Cmake配置图生成的build
4、修改相关路径

  • ACTUAL_3RDPARTY_DIR(第三方库)设置为D:/OSG/3rdParty_x64/x64
  • 勾选BUILD_OSG_EXAMPLES
  • CMAKE_INSTALL_PREFIX设置为D:/OSG/build/bin
  • COLLADA_DOM_ROOT设置为D:/OSG/3rdParty_x64/x64/include/1.4/dom
  • 手动进行修改ffmpeg的各个值,如下图,注意FFMPEG_STDINT_INCLUDE_DIR的值为空,如下图【原文图】
    FFMPEG设置
  • 再次点击一次Configure,又出现部分红色,勾选BUILD_MFC_EXAMPLE,如下图
    BUILD_MFC_EXAMPLE
  • 再次点击Configure,此时所有标红部分消失,点击Generate,等待完成,如下图
    成功配置

四、VS编译项目

1、用VS2017打开OpenSceneGraph.sln,如下图
工程
2、在生成项目之前,先修改stdafx.h,定位到Examples osgviewerMFC工程,如下图
stdafx.h
3、上图标红的宏定义部分,_WIN32_WINNT实际的值为0x0A00(本机是WIN10),而这里定义为0x0501,显然是错的,所以将WINVER和_WIN32_WINNT都统一修改为0x0A00,如下图。注:若是 WIN7其值应该是0x001。
修改h文件

4、点击生成,批生成
批生成
5、编译生成ALL_BUILD, 勾选相关的编译输出类型,勾选Release,Debug,编译时间会很长(约3小时)。
6、勾选编译生成INSTALL,勾选Release,Debug版。这部时间很短短到自己都不信真的编译成功了,(编译成功后,再去编译,会出现问题!浪费太多时间了),如下图,
生成INSTALL

五、拷贝库文件至文件夹

1、在OSG文件夹下新建output文件夹,并在该文件夹下新建bin、include、lib三个文件夹,用于存放OSG编译后的动态库、头文件和库文件。
2、拷贝D:\OSG\3rdParty_x64\x64下的bin、include、lib文件夹至D:\OSG\output文件夹下。
3、拷贝D:\OSG\OSGbuild下的bin、include、lib文件夹至D:\OSG\output文件夹下,选择覆盖即可。
4、拷贝D:\OSG\OpenSceneGraph-OpenSceneGraph-3.6.3下的include文件夹至D:\OSG\output文件夹下,选择覆盖即可。

六、配置环境变量

1、新建系统变量OSG_FILE_PATH,值为D:\OSG\OpenSceneGraph-Data
新建环境变量
2、将下列路径加入到Path中
D:\OSG\output\bin
3、输入cmd命令,测试OSG是否安装成功,如下图

osgversion
osgviewer cow.osg
osglogo
命令行

七、测试,新建WIN32控制台工程

1、在cpp中输入以下代码

#include <iostream>
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
int main()
{
	osgViewer::Viewer viewer;
	viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
	return viewer.run();
}

2、鼠标右键工程,选择属性,在VC++ 目录选项下,配置包含目录和库目录,如下图
包含目录和库目录
3、在链接器->输入选项下,配置附加依赖项,添加下列库,注:Debug模式下这些库后缀带d,Release模式下不带d,本机没有编译Debug模式的库,所以直接用Release版,如下图
OpenThreads.lib;osg.lib;osgDB.lib;osgUtil.lib;osgGA.lib;osgViewer.lib;osgText.lib;
附加依赖项
4、编译运行,效果显示
在这里插入图片描述

八、遇到问题及解决办法

1、release和debug没有一一对应
1.1、问题一
无法打开源文件 “osgViewer/Viewer”
无法打开源文件 “osgDB/ReadFile”
无法打开包括文件: “osgViewer/Viewer”: No such file or directory
无法打开源文件述
1.2、问题一,解决思路:注意【Release】和【Debug】的选择,注意一一对应,问题就解决了!如下图
目录设置附加依赖项
2、遇到关于GL/gl.h的问题,在#include <GL/gl.h>前,加入#include <windows.h>以解决。

九、参考文献

  1. OSG安装报错信息及注意事项
  2. VS2017 统一配置附加包含目录和库目录
  3. vs2017 加入GL/gl.h的错误

计算机环境:win10、vs2017

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值