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 ...
随机推荐
- .NET 8 微软免费开源的 Blazor UI 组件库
前言 .NET 8 的发布,微软推出了官方免费且开源的 Blazor UI 组件库 -- Fluent UI Blazor. 组件库提供了Web应用程序所需的工具,确保应用程序能够与 Microsof ...
- SPiT:超像素驱动的非规则ViT标记化,实现更真实的图像理解 | ECCV 2024
Vision Transformer(ViT) 架构传统上采用基于网格的方法进行标记化,而不考虑图像的语义内容.论文提出了一种模块化的超像素非规则标记化策略,该策略将标记化和特征提取解耦,与当前将两者 ...
- EF Core – Table / Entity Splitting
参考 Docs – Advanced table mapping Table Splitting Table Splitting 指的是把一个表映射到多个 Entity,或者反过来说就是把多个 Ent ...
- Asp.net core 学习笔记之 authen + autho + oidc + oauth + spa 第九篇 (external login)
External login 就是指通过 Google, Microsoft, Facebook account 做登入. https://docs.microsoft.com/en-us/aspne ...
- Google Ads – 大杂烩
广告相互竞争, 自己打自己? About similar keywords in a Google Ads account 如果用户的搜索能匹配到广告 Campaign 中多个广告的话, 会怎么样? ...
- Figma 学习笔记 – Prototype
挺简单的, 只要知道它有什么, 基本上就会用了 监听 Event Type 监听 Callback Action 过度 Animation Frame Scrolling
- PTA甲级—图
1.图的遍历 1013 Battle Over Cities (25 分) 一种方法使用dfs求连通块的个数 #include <cstdio> #include <cstring& ...
- QT数据可视化框架编程实战之三维柱状图从入门到精通_补天云QT技术培训专家
QT数据可视化框架编程实战之三维柱状图从入门到精通_补天云QT技术培训专家 简介 本文将介绍QT数据可视化框架(QT DataVisualization 模块)编程实战之三维柱状图(Q3DBars)的 ...
- 掌握Docker:简化KES单机安装与管理的最佳实践
今天我们将继续深入探讨KES的单机安装,依然围绕Docker的使用展开.这一部分的内容将涵盖一些常见的陷阱以及在遇到问题时如何进行有效的反馈和解决.首先,我们需要找到官方的安装教程,确保以官方指南为主 ...
- 3.flask 源码解析:路由
目录 一.flask 源码解析:路由 1.1 构建路由规则 1.2 werkzeug 路由逻辑 1.3 flask 路由实现 1.4 match 实现 Flask 源码分析完整教程目录:https:/ ...