OSG开发笔记(三十六):osg3.4.0基于windows平台msvc2017x64编译器编译并移植Demo
前言
本篇编译osg3.4.0的msvc2017x64版本,之前使用的都是mingw32版本。
OSG编译
步骤一:下载解压
下载3.4.0版本。

步骤二:使用cmake配置



因为是64位,可以通过后续配置cmake用x64,也可以直接选择构架:

继续:

要修改下安装的路径,方便提取库:

默认是32位,发现后续vs更改不行,得在cmake处更改,查看“入坑一”,修改如下图:

修改后需要重新configure。
步骤三:生成工程


步骤四:打开vs2017打开工程

装了多个vs,可能会打开错误,如果打开不是使用vs2017就自行使用

步骤五:VS2017编译
编译debug版本,先创建x64版本

卡住了,等一会儿:

然后编译:


编译release版本:



步骤六:安装到目标位置
安装debug版本:


安装release版本:


检查install的文件:

OSG原Demo迁移
移植Demo过来,复现过去的两个bug,一个是从相机旋转中心,一个是球体透明截面
测试都使用纯C++原始代码修改,非自建的引擎,也不是osgQt。

入坑
入坑一:模块计算机类型“x86”与目标计算机类型“x64”冲突
问题
这是个常规问题了,关键在于已经设置了x64怎么出来还是x86_32,好几年没弄,又卡了一下。

原因
这是平台解决方案是x64,但是默认没有x64,还得新增配置,又由于新增解决方案卡住了,笔者就只新增活动方案,下面没点了,正确要勾选如下图:

经过测试还是不行,再往前退,在CMake配置得时候指定x64:

解决
在CMake配置得时候指定x64:

然后重新再来一遍即可。
入坑二:编译运行直接异常
问题
运行直接崩,一般是dll依赖缺少,检查了不缺。

尝试
使用纯Qt程序,排除掉osg的,使用纯Qt程序,也是崩溃,本身Qt装的可能有问题,继续研究

新建了个新的是可以:

怀疑是osg得shadow文件夹内部有问题,删掉shadow,再运行裸的只有界面的程序(去掉了osg的其他依赖):
可以运行:

然后拷贝添加osg发现崩了,发现没有拷贝dll过去,检查脚本:

有问题,以为是没复制过去覆盖32位的,复制过去也崩了,单独运行,还是0x7B错误,这是库连接错误,不理解了,后来经过dll对比,发现时间与32位一致,那么问题的原因就是晚上有点事,第二天上午才看,以为编了覆盖了64位的,实际没编译,install还是32位的,所以编译写程序还是连续时间比较好,第二天:

重新编译并且install发现,时间还是没变,只好删除了build文件夹重新弄了,以为是粗心,结果不是,那么点击重新编译:
检查了是生成了:

但是install拷贝过去就是之前的时间:

搞蒙了都(理论上一个build也可以更改参数然后install到不同文件夹,但是这里不管了)。
解决
build全删掉,一刀切,从头新建build重新来一遍,确保生成了64位的并提取出来。

这里还少了release库,弄完好,再测是没问题了。
OSG开发笔记(三十六):osg3.4.0基于windows平台msvc2017x64编译器编译并移植Demo的更多相关文章
- Java开发学习(三十六)----SpringBoot三种配置文件解析
一. 配置文件格式 我们现在启动服务器默认的端口号是 8080,访问路径可以书写为 http://localhost:8080/books/1 在线上环境我们还是希望将端口号改为 80,这样在访问的时 ...
- MySQL数据库开发的三十六条军规
一.核心军规 尽量不在数据库做运算,cpu计算的事务必移至业务层; 控制表.行.列数量([控制单张表的数据量 1年/500W条,超出可做分表],[单库表数据量不超过300张] .[单张表的字段个数不超 ...
- .net开发笔记(十六) 对前部分文章的一些补充和总结
补充有两个: 一个是系列(五)中讲到的事件编程(网址链接),该文提及到了事件编程的几种方式以及容易引起的一些异常,本文补充“多线程事件编程”这一块. 第二个是前三篇博客中提及到的“泵”结构在编程中的应 ...
- 网站开发进阶(三十六)String.getBytes()方法中的中文编码问题
String.getBytes()方法中的中文编码问题 String的getBytes()方法是得到一个系统默认的编码格式的字节数组. getBytes("utf-8")得到一个U ...
- Java开发笔记(十六)非此即彼的条件分支
前面花了大量篇幅介绍布尔类型及相应的关系运算和逻辑运算,那可不仅仅是为了求真值或假值,更是为了通过布尔值控制流程的走向.在现实生活中,常常需要在岔路口抉择走去何方,往南还是往北,向东还是向西?在Jav ...
- 论文阅读笔记三十六:Mask R-CNN(CVPR2017)
论文源址:https://arxiv.org/pdf/1703.06870.pdf 开源代码:https://github.com/matterport/Mask_RCNN 摘要 Mask R-CNN ...
- Android UI开发第三十六篇——使用Volley加载图片列表
Android开发者可能会使用Universal Image Loader或者Square`s newer Picasso这些第三方的库去处理图片的加载,那么Volley是怎么加载图片列表的呢,这一篇 ...
- 【Unity 3D】学习笔记三十六:物理引擎——刚体
物理引擎就是游戏中模拟真是的物理效果.如两个物体发生碰撞,物体自由落体等.在unity中使用的是NVIDIA的physX,它渲染的游戏画面很逼真. 刚体 刚体是一个很很中要的组件. 默认情况下,新创的 ...
- BizTalk开发系列(三十六) Orchestration单实例执行
BizTalk 是高效的消息处理引擎,采用多线程并发的方式来处理消息.也就是说当有消息被接收的时候就会产生一个新的消息处理实例.但有时目标系统可能并没有并发处理 的能力, 这时就需要在BizTalk中 ...
- PHP学习笔记三十六【try 二】
<?php //定义一个顶级异常处理器 要定义在最上面 function my_exception($e) { echo "我是顶级异常处理:".$e->getMess ...
随机推荐
- 深度学习模型训练的过程理解(训练集、验证集、测试集、batch、iteration、epoch、单步预测、多步预测、kernels、学习率)
呜呜呜呜,感谢大佬学弟给我讲干货. 本来是讨论项目的,后面就跑偏讲论文模型了. 解答了我一直以来的疑问: 数据放模型里训练的过程. 假设我们有一个数据集26304条数据,假设设置模型读入1000条,如 ...
- CSS & JS Effect – Breadcrumb Navigation 面包屑
介绍 Breadcrumb 长这样 主要就是让用户清楚自己在哪个 page, 然后可以轻松返回上一页. Step by Step HTML <div class="container& ...
- Qt中一些关于中文的使用
本文包含以下内容: 中文编码 按中文字典排序 中文首字母查找 版本:Qt5.14.2 中文编码 在一些老项目中,发现项目中使用的文件是GBK编码,而新项目使用的是Unicode编码,在有一些操 ...
- Linux安装miniforge
miniforge 安装 协议条款:bsd-3-clause 支持conda和mamba命令,两者效果一样,推荐使用mamba # Setup Miniforge wget "https:/ ...
- ARM64中的ASID地址空间标识符
1. 从ARM32到ARM64 从ARM32到ARM64不止将处理器从32位升级到了64位,还有许多性能的技术也得到了极大的提升,光是个头长了可不行啊!能耐也得跟着长啊!哈哈哈 1.1 ARM32的T ...
- Java日期时间API系列33-----Jdk8中java.time包中的新的日期时间API类应用,格式化常用模板大全,新增Excel常用格式。
从Java日期时间API系列10-----Jdk8中java.time包中的新的日期时间API类的DateTimeFormatter中可以知道常用字符有超过20几种,各种组合结果非常多.但常用的组合就 ...
- axios有没有做过⼀些业务封装?
啊,有的,在项⽬⾥⾯我主要是封装过axios的拦截器部分 我在请求拦截器⾥⾯做了注⼊全局token的事情,这个事⼉是因为有很多接⼝都需要这个token来做数据 鉴权,为了避免书写多次 统⼀配置了⼀下 ...
- 【2024】所有人都能看懂的 Win 11 安装/重装教程,跟着我一遍包成功
无论你因为系统坏掉想重装一下 Windows,或者只是想升级一下 Windows 都可以.虽然标题写的是 Win 11,不过实际上对于任何 Windows 系统都适用,不过现在 Win 11 已经相当 ...
- 网页转换为PDF的方法 Python
前言 近期有些文档是在网站上的,量非常大.加之对于纸质书的喜爱,想把他们整合到一个PDF文档中,然后交由拼多多的老熟人打印店给打一下. 但是这个网站网页转PDF有很多在线网站可以用,不过只能转一个页面 ...
- 函数(C语言)
目录 1. 函数的概念 2. 库函数 2.1 标准库和头文件 2.2 库函数的使用方法 3. 自定义函数 3.1 函数的语法形式 3.2 函数的举例 4. 形参和实参 4.1 实参 4.2 形参 4. ...