配置OSG环境——Win10+VS2013+OSG3.4
阅读原文时间:2021年04月21日阅读:1

VS2013中OSG环境的配置

由于项目开发,需要处理OSGB格式的数据,因此着手配置OSG环境。有过opencv环境配置的经验,但从未接触过OSG,网上的很多配置教程流程基本正确,但有一些细节写的不够详细,致使配置过程中踩了不少坑。在这里做一个记录,以便下次配置需要。

配置版本说明:Win10+VS2013+OSG3.4.0

工具及资源准备

  1. OSG源码:OpenSceneGraph-3.4.0.zip 可以官网下载,http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.4.0/source/OpenSceneGraph-3.4.0.zip;
  2. OSG第三方依赖库:3rdParty_VS2013_v120_x86_x64_V9_full.7z http://download.osgvisual.org/3rdParty_VS2013_v120_x86_x64_V9_full.7z
    注:第三方库版本必须与Visual Studio版本相对应,以上列出来的版本仅用于Visual Studio2013,平台工具集版本为v120的情况下,包括x86和x64的版本,也可仅下载自己需要的版本;
  3. OSG数据包:OpenSceneGraph-Data-3.4.0.zip http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.4.0/data/OpenSceneGraph-Data-3.4.0.zip;
  4. Cmake工具:cmake-3.13.5-win64-x64.msi
    https://cmake.org/download/
    CMake仅是个配置工具,与上述三项无版本对应关系,因此下载最新版即可;Cmake最好下载.msi格式的,有安装页面指导安装,下载zip的据说还要自己编译。

文件的组织和准备

在D盘新建一个OSG的文件夹,然后将下载的文件放在这个文件夹下:
D:\OSG\OSG3.4: OpenSceneGraph-3.4.0.zip解压后的文件路径,方便查看手动改了文件名为OSG3.4 。
D:\OSG\3rdParty: 3rdParty_VS2013_v120_x86_x64_V9_full解压后的路径,同样手动改了文件夹名称为3rdParty。
D:\OSG\data: OpenSceneGraph-Data-3.4.0.zip解压后改名为data。
最后运行cmake-3.13.5-win64-x64.msi 安装CMake

安装源码

  1. 安装完Cmake之后,打开CMake -gui.exe

  2. 将OSG3.4里头的CmakeLists.txt,拖到Cmake界面,或者在"Where is the source code"中选择OSG3.4文件夹,即CmakeList.txt的路径。

  3. 为方便新生成文件整理,在OSG3.4下新建build文件夹,在"Where to build the binaries" 中将路径选为build内的路径。(也可以不建立新文件夹,生成的文件会和源码掺在一起)

  4. 点击Configure,选择Visual Studio 12(VS2013)、
    注:这里选择的是你自己的VS版本,要根据需要选择

  5. finish后,等运行框显示Configuring done,进行相关设置:
    ACTUAL_3RDPARTY_DIR 值设为:D:/OSG/3rdParty/x86;
    BUILD_OSG_EXAMPLES :勾上 ;
    CMAKE_INSTALL_PREFIX :D:/OSG/OSG3.4;

  6. 点击Configure后,等配置完成,将Advanced打勾,
    将BUILD_MFC_ EXAMPLE设置为on,然后再点击Configure进行最后一次的配置。

  7. 配置完成后,点击Generate,自此建构完成。

    注意:ACTUAL_3RDPARTY_DIR 第三方库目录选择 D:/OSG/3rdParty/x86,即使你的系统是64位的,但你的vs2013的平台如果用的是Win32,就要选择x86. 在这里踩了一次坑,五个小时浪费了,又重头配。

工程编译

  1. 用VS2013打开D:\OSG\OSG3.4\build下的OpenSceneGraph.sln文件,第一次打开加载会有些慢

  2. 等加载完成后,选择生成-批生成,选择Debug和Release两个版本的ALL_BUILD,然后点击生成,如果是第二遍搞,可以点击重新生成。这一步超级慢,大概要等三五个小时,可以去做点别的。

    如果上述步骤都正确,这一步会有些提醒,但不会报错。如果报了某些dll或库文件缺失的错误或者不确定错误是什么造成的,可以先把后边的步骤做完测试一下,没准就能用了,这一步很迷,鉴于我也是新手,解释不了,以后弄懂了再来补充。

  3. 上一步完成后,再一次点击生成–批生成,选择Debug和Release两个版本的INSTALL,然后点击生成,对INSTALL也进行相应生成编译。这段时间会稍微短一些。
    (同样可能会报一些库缺失的错误)

库整理

生成成功后,D:\OSG\OSG3.4\build下的include、bin、lib里面会得到很多东西,这也是我们需要的东西。
但这个build下的include、bin、lib三个文件夹里的东西是不完整的,需要自己同D:\OSG\OSG3.4下对应的include、bin、lib文件整合起来才能用。

  1. 编译成功后,在C盘新建一个叫OSG的文件夹,将D:\OSG\OSG3.4\build下的include、bin、lib三个文件拷贝到C:\OSG\里边。
  2. 将D:\OSG\OSG3.4下的include、bin、lib文件内的全部内容分别拷贝到C:\OSG\下的include、bin、lib文件夹下。
    这一步的目的是为了合并两个版本的include、bin、lib文件,并将合并的结果放在C盘下,遇见同名文件可以跳过。
  3. 将之前下载好的示例数据OpenSceneGraph-Data-3.4.0.zip拷贝到 C:\OSG\下,解压到当前文件夹后重命名为data。

配置环境变量

在以上都准备好之后,在我的电脑-属性-高级系统设置 中配置环境变量。

  1. 在名为path的环境变量里,新建加入C:\OSG\bin 这是上一步中整合后的路径;
  2. 新建系统变量,变量名为:OSG_FILE_PATH,变量值为C:\OSG\data


    可在命令行(CMD)中输入命令 osgversion,osglogo,osgviewer cow.osg进行测试
    如果这三个命令哪个都找不到,就全盘搜相应的exe,比如osglogo.exe,看看在哪个路径,是否与环境变量的路径对应上了。

新建OSG项目测试示例

  1. 在VS2013下新建一个win32控制台程序,并添加一个cpp
  2. 在项目-属性中,选择 配置属性–VC++目录,在包含目录添加:C:\OSG\include,在库目录添加:C:\OSG\lib
  3. 选择 配置属性–链接器,在附加依赖项中加入依赖库:
    OpenThreadsd.lib
    osgd.lib
    osgDBd.lib
    osgUtild.lib
    osgGAd.lib
    osgViewerd.lib
    osgTextd.lib
    opengl32.lib
    osgViewer.lib

文件名最后一个字母为“d”的为Debug版本所使用的,没有“d”的为Release版本所使用的。 可根据需要加入自己要用的库


4. 最后,在cpp中,输入以下代码:

#include "stdafx.h"
#include<windows.h>
#include<osgViewer/Viewer>
#include<osgDB/ReadFile>

int _tmain(int argc, _TCHAR* argv[])
{
    osgViewer::Viewer viewer;

    viewer.setSceneData(osgDB::readNodeFile("cow.osg"));

    return viewer.run();
}
  1. 在无报错的情况下点击运行。如果有报错说找不到什么文件,就回头看路径都设置正确了没。
    如果能出现以下这种效果,就说说明配置成功了。

若运行过程中,系统提示缺失zlib.dll和zlibd.dll, 这两个分别对应Release和Debug版本
这两个dll可在OSG依赖的第三方库3rdParty文件夹中找到,注意x86与x64选择,然后复制到C:\OSG\bin下。

OSG官方网站:
http://www.osgchina.org/index.php?option=com_content&view=article&id=111:usevscompile&catid=95&Itemid=484

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章