OSG编译安装-MSVC
OSG编译安装-MSVC
1、准备工作
1.1 环境
1.2 osg下载
osg官网
OSG源码(OpenSceneGraph)
也可使用git下载:
git clone --branch OpenSceneGraph-3.6.5 https://github.com/openscenegraph/OpenSceneGraph.git
依赖库(3rdParty)
这里选择已经编译好的VisualStudio 2017版本库
数据资源(OpenSceneGraph-Data)
2、Cmake编译
打开Cmake,将OpenSceneGraph文件夹下的CMakeLists.txt文件拖进Cmake中,创建build文件夹并在Cmake中指定路径;

点击configure,选择vs2017、x64(由于下载的依赖库为64位,所以这里如果要编译32位的只能自己编译依赖库),注意如果是安装了多个版本vs,需要选择Specify native compilers,我这里只安装了一个版本;

指定依赖库路径ACTUAL_3RDPARTY_DIR

勾选BUILD_OSG_EXAMPLES(可选择不勾选)

修改安装路径CMAKE_INSTALL_PREFIX

点击configure直到没有红色,然后点击Generate,等待生成VS解决方案,生成完成后点击Open Project打开VS

3、Visual Studio编译
打开解决方案后,选择Debug、x64

右键ALL_BUILD,点击生成,等待两小时就可以编译完成,然后选择Release再编译一次

右键INSTALL,点击生成就可以在之前指定的安装路径下(CMAKE_INSTALL_PREFIX)生成编译好的文件了


将依赖库和数据资源文件拷到编译后的文件路径处

4、添加环境变量
打开系统环境变量

添加如下环境变量,注意路径换成自己的,然后保存

* OpenSceneGraph-Data环境配置:打开系统环境变量,点击新建,输入OpenSceneGraph-Data路径,重启电脑使环境变量生效

5、测试安装
可测试命令
osgversion
osglogo
osgviewer
打开cmd
输入:osgversion

输入:osglogo

输入:osgviewer D:\OSG\OpenSceneGraph-Data\cow.osg 或osgviewer cow.osg

6、Qt程序
新建一个Qt工程,选择编译器位MSVC2017-x64(需要配置)
打开.pro文件,添加下列代码(路径换成自己的)
INCLUDEPATH += D:/OSG/install/include
DEPENDPATH += D:/OSG/install/include
win32:CONFIG(release, debug|release): LIBS += -LD:/OSG/install/lib/ -losg
else:win32:CONFIG(debug, debug|release): LIBS += -LD:/OSG/install/lib/ -losgd
win32:CONFIG(release, debug|release): LIBS += -LD:/OSG/install/lib/ -losgViewer
else:win32:CONFIG(debug, debug|release): LIBS += -LD:/OSG/install/lib/ -losgViewerd
win32:CONFIG(release, debug|release): LIBS += -LD:/OSG/install/lib/ -losgDB
else:win32:CONFIG(debug, debug|release): LIBS += -LD:/OSG/install/lib/ -losgDBd
或者右键工程,选择添加库

选择需要添加的库,然后点击确认即可

添加下列代码
#include "widget.h"
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
int main(int argc, char *argv[])
{
QString osgPath = "D:/OSG/OpenSceneGraph-Data/avatar.osg"; // 换成自己的路径
osgViewer::Viewer viewer; // 创建查看器
osg::Node * node = new osg::Node;
node = osgDB::readNodeFile(osgPath.toStdString()); // 读取模型文件,赋值给节点指针
viewer.setSceneData(node); // 查看器中添加该节点
return viewer.run(); // 运行查看器
}
编译运行结果如下

7、编译好的库
链接:https://pan.baidu.com/s/1UfNbJ0fUAzKfe3XrWNVTDA
提取码:66tf
OSG编译安装-MSVC的更多相关文章
- VS2010 编译安装boost库
实践是最好的办法..学习C++,想试试线程,然后打算用boost库,结果boost库编译差点吓到我..没看到比较完整的安装教程..一直耽搁.今天动手.完成了.方法记录如下:1.下载boost从boos ...
- 实践详细篇-Windows下使用VS2015编译安装Caffe环境(CPU ONLY)
学习深度学习背景 最近在做一款抢票软件,由于12306经常检测账号状态,抢票抢着抢着就需要重新登录了,然后登录是需要验证码的.所以我最开始是想到了使用java基于感知哈希算法pHash做相似度匹配识别 ...
- windows系统,boost编译安装
windows系统,boost编译安装vs2017 1.下载https://www.boost.org/users/download/下载windows对应的zip包解压 2.配置vc环境变量我的是: ...
- nginx的编译安装
下载源码 wget http://nginx.org/download/nginx-1.15.9.tar.gz 安装开发包组 yum groupinstall "Development To ...
- Qt最新版5.12.2在Win10环境静态编译安装和部署的完整过程(VS2017)
一.为什么要静态编译 用QtCreator编译程序时,使用的是动态编译.编译好的程序在运行时需要另外加上相应的Qt库文件,一大堆dll文件.如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程 ...
- Windows 编译安装 nginx 服务器 + rtmp 模块
有关博客: <Windows 编译安装 nginx 服务器 + rtmp 模块>.<Ubuntu 编译安装 nginx>.<Arm-Linux 移植 Nginx> ...
- ubuntu20.04 编译安装ckermit
ubuntu20.04编译安装ckermit 我呢之前一直使用的是ubuntu18.04,最近在安装了某个软件之后,再加上自己的操作不当最终导致ubuntu系统卡死无法进入桌面环境,早就想更新20.0 ...
- PostgreSQL(一) 编译安装运行
原创,如转发需注明出处. 多年没写博客,一直用的个人笔记软件,最近准备阅读PostgreSQL源码,故记录.(这两年PostgreSQL数据库在某些环境下是比较火的,原因想必大家都清楚.) Postg ...
- Centos6.5下编译安装mysql 5.6
一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...
- CENTOS 6.5 平台离线编译安装 PHP5.6.6
一.下载php源码包 http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror 二.编译 编译之前可能会缺少一些必要的依赖包,加载一个本地yum ...
随机推荐
- k8s 深入篇———— Job与CronJob[十]
开篇 简要演练一下job 和 cronjob 正文 实际上,它们主要编排的对象,都是"在线业务",即:Long Running Task(长作业).比如,我在前面举例时常用的 Ng ...
- c++ 中const 原理
前言 在c++ 中和别的语言不一样,高级语言是将const编译了,c又不同这里不介绍,而c++ 是实现了. 正文 const 原理 请看一个解析: const a=10; int*p=&a; ...
- Vue3 解构赋值失去响应式引发的思考
前言 vue3发布以来经历两年风头正盛,现在大有和react 平分秋色的势头,我们知道他是基于proxy 实现响应式的能力, 解决了vue2所遗留下来的一些问题,同时也正由于proxy的特性,也提高了 ...
- C#S7.NET实现西门子PLCDB块数据采集的完整步骤
前言 本文介绍了如何使用S7.NET库实现对西门子PLC DB块数据的读写,记录了使用计算机仿真,模拟PLC,自至完成测试的详细流程,并重点介绍了在这个过程中的易错点,供参考. 用到的软件: 1.Wi ...
- 第十課-Change Mirth Connect To Mariadb
随着接口部署数量和交互数据越来越多,原来基于Mirth Connect默认derby嵌入式数据库下运行越来越不能满足高性能.高可靠等线上刚性需求:故需要切换Mirth Connect的运行后台数据库. ...
- App DApp Deploy as Code! SAE & Terraform 实现 IaC 式部署应用eploy as Code! SAE & Terraform 实现 IaC 式部署应用
简介: SAE 和 Terraform 的结合,能够帮助企业像处理代码一样管理自己的应用,对资源的操作都变得可审计,可追溯,可回滚,同时也降低人为操作带来的风险. 企业上云是近些年的发展热潮,越来越多 ...
- 每次都需要解释大量指令?使用 PolarDB-X 向量化引擎
简介: 向量化引擎为PolarDB-X的表达式计算带来了显著的性能提升. 介绍 PolarDB-X是阿里巴巴自研的云原生分布式数据库,采用了计算-存储分离的架构,其中计算节点承担着大量的表达式计算任务 ...
- 使用 rocketmq-spring-boot-starter 来配置、发送和消费 RocketMQ 消息
简介: 本文将 rocktmq-spring-boot 的设计实现做一个简单的介绍,读者可以通过本文了解将 RocketMQ Client 端集成为 spring-boot-starter 框架的开发 ...
- [PHP] Laravel cast array 数据库存 json 时的 unicode 编码问题
在模型上设置 accessor 和 mutator,将数组转为 json,并设置 json 选项. class User extends Model { public function setOpti ...
- [Contract] Solidity 合约发布到测试网 ropsten 的作用
当我们本地完成了一系列测试以后,接下来就是准备上线了. 关于合约部署可以参考这篇:Solidity 合约使用 truffle 部署到测试网和主网 你可能有一个疑问,在上主网之前,先上测试网的作用是什么 ...