osg3.6.0+win10+vs2015+qt5.9

前一阵需要用osg来做点东西,一直用的是其他童鞋编译好的拿过来用,自己弄了好几次,不是缺这个就是缺那个,就放着没弄。碰巧周末下雪?,不想出去晃,待在家里就重头弄了一下。一个不断跳入坑中,不断爬起再跳去坑中的编译过程。

1.下载准备

1.1.OpenSceneGraph-.6.0.zip

(https://github.com/openscenegraph/OpenSceneGraph/tree/OpenSceneGraph-3.6.0)

1.2.三方支持库

因为我的环境是vs2016 64位,所以我选择从官网上找到对应的。这个链接需要自己编译生成,以后介绍。

1.3.Cmake下载。最初使用的版本是CMake 3.13.0。通过了osg(不包含qt)的编译生成,但是在编译osgQt-master时显示找不到一些dll。查了些资料据说可能是版本问题,所以更换位3.12.0。建议直接选择3.12.0少走弯路。

1.4.Qt下载。进官网下载https://www.qt.io/download。选择OpenSource,因为穷。选择版本,我们这里用的是vs2015 64位(不要忘掉),默认路径安装。后续要用到这个安装目录中的一些库,所以要先装好。

1.5.osgQt-master下载,这个是osg(qt版)和qt都安装好之后,要用到这个来编译生成库体。

2.正文:按顺序来叙述部署过程

2.1.三方库的生成

官网中给的三方库要通过cmake文件自己编译生成,注意事项,根据官网给定的版本来下载,因为软件更新很快,所以可能会存在版本对应的问题。所以要注意!

网址:https://github.com/bjornblissing/osg-3rdparty-cmake

这里有zlib\libpng\libjpeg\libtiff\FreeType\GLUT\GIFLIB\MINIZIP\cURL

新建一个文件夹用来存放cmake生成结果。将里面的CURL_SOURCE_DIR等与下载的文件位置对应上。

 

点击configer。红色消失,点击Generate,生成完成打开该项目。打开项目后,在VS2015生成/批生成中选择ALL_BUILD的debug和release,点击生成。这个时间很快几分钟就完成了。在项目文件夹中有个脚3rdParty的文件,就是我们需要的编译好的三方库,这些基本满足后续使用要求。但这只是一部分OSG需要的三方库,有一些还要自己下载,自己编译。

 

2.2.OSG编译

2.2.1.三方库生成之后,就要编译OSG了,编译适合qt开发的osg与普通的直接编译osg不同,需要更改下载下来的osg中的CMakeLists.txt文件,里面添加两行。如果你的qt版本和路径和我的不一致,改成你的就可以了。

SET(DESIRED_QT_VERSION "5.9.0" CACHE STRING "")
SET(CMAKE_PREFIX_PATH "C:/Qt/5.9/msvc2015_64" CACHE PATH "")

 

2.2.2.完成CMakeLists.txt修改后,使用cmake生成项目文件,修改如下几个选项
ACTUAL_3RDPARTY_DIRD:/osg360/3rdParty/v140-x64

BUILD_OSG_EXAMPLES:打勾
CMAKE_INSTALL_PREFIXD:/OSG/OpenSceneGraph/build(这里如果不小心选了默认C盘某个位置,花了六个消失编译成功后,点击生成会提示cmake权限不足,这时更改项目文件夹下build\applications\cmake_install.cmake文件中的CMAKE_INSTALL_PREFIX地址就可以了)

2.2.3.将三方库都对应过来,如果你发现自己使用的库没有如not Found GDAL: D:/Program Files/OpenSceneGraph_3drparty/lib/gdal_i.lib,这时你需要自己去下载生成它的debug和release版本对应到cmake中。里面的一些库我也没有用到,所以就没有编译了,这个根据自己需要。

 

 

配置好后,点击configure红色消失后,点击Generate。生成完成使用vs2015,选择ALL_BUILD的Debug和Release生成,这个过程可能四五个消失。如果错误,检查哪里错误,大部分都是三方库对应不正确问题。成功后INSTALL的Debug和Release生成。至此带有QT的OSG编译生成完成。

 

2.3.编译osgqt,下载https://github.com/openscenegraph/osgQt

打开CMakeLists.txt,找到PROJECT(osgQt)下的两行(130-131行)。这个SOVERSION可以在下载的OSG里面的CMake文件找到

新建生成路径,配置CMake,点击Configer把路径都对应过去,如果提示找不到qt5,则手动定位到

C:\Qt\5.9\msvc2015_64\lib\cmake\Qt5,这里面有Qt5Config.cmake等文件,同样可以在

C:\Qt\5.9\msvc2015_64\lib\cmake中找到其他需要的文件。

点击生成,最后在VS2015中编译生成。

最后把三方库,osg编译生成的库还有qt库都合成一个。bin文件都归成一个,include和lib都合起来。这个就可以用了!

最后发现其实不在osg中更改CMakelist的Qt,直接编译生成是可以用的。编译OSG时间太长了,经不起失败呀。。。

2.4.运行代码

最后是常规配置了,给配置属性,指向生成的库体,运行结果

续言:这个总结是个人探索结果,可能有错误,希望批评指正,如果能对其他人起到帮助作用最好。

最近做了一些三维地理坐标转换的东西,有时间也会分享!

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值