mayo介绍和QTqmake编译基于Opencascade开发的mayo工程-小白配置
目录:
- 一、mayo介绍
- :zap: 最新功能(截止7.8.2)
- 在这里插入图片描述
- 二、编译准备
- 三、编译过程
- 3.1`QT Creator`打开源码的pro工程
- 3.2修改几处pro配置
- 3.3复制所需的动态链接库
- 3.4编译完成
一、mayo介绍
1️⃣mayo是一个基于opencascade开源库开发的一个开源CAD应用代码工程库(OpenCASCADE 是一套开源代码的CAD/CAM/CAE几何模型核心,为数不多的开源几何造型引擎),可以查看常见的cad格式和点云格式(.step、.obj、.ply等),还有常见的模型树,还有许多可视化和测量图元的功能,用来学习opencascade和拓展为其他应用CAD程序,非常之好!
2️⃣mayo源码是值得学习,编译代码工程是必要的,cmake或者vs编译会让初学者望而止步,所以在这里用qmake编译,并且可以作为opencascade自主开发的一个好实例。
⚡️ 最新功能(截止7.8.2)
😊另外,还可以支持多种交互操作,基本达到常见的cad功能软件交互体验!
软件界面如下:
二、编译准备
🌈说明:本次编译是由下面两个工具进行配置的(qt creator 和Opencascade为必须品,请必须留意对应的版本号),需要的分别是:
- 1️⃣
QT Creator(6.6.3)
:采用qamke工程(.pro文件)编译,cmake不包括(要搞自己搞),理论上qt5.1.2(qt5以上)也是,自己可以试;- qt编译器是用
msvc2019
,到时打开pro工程记得勾选,自己也可以试下mingw有没问题!
- qt编译器是用
- 2️⃣
OpenCASCADE(opencascade-7.5.0)
:这个版本一定要对应上,7.5算是比较新又比较好(如果mayo官方有用其他很新的版本,也可以用新的Opencascade),用的是官网下载好的文件(7.5的安装程序)- 下载地址
- 下载完,就安装程序,过程中会提示,用的是自定义版本还是全版本,这里用的是全版本,等待安装完成就行,这个是源代码和lib引用的地方,放个好位置吧;
- 3️⃣
mayo工程
:这里用的是master分支(因为这个有pro文件,只修改几个地方就行了,这个分支记得选master
分支),clone下来或者下载对应分支的zip包;- mayo地址
- 版本大概是2023的出来的
master
分支
三、编译过程
3.1QT Creator
打开源码的pro工程
我比较习惯用msvc2019,mingw没试过
3.2修改几处pro配置
1️⃣主要修改的是对opencascade的Lib引用和include位置,对自己安装的qt的一些配置
2️⃣主要将这两个变量值修改为自己安装opencascade的Lib引用位置(可以发现这个目录底下有很多Lib文件)和include位置(包含.hpp文件),其他变量值暂时不用管,如下:
3️⃣引用的位置如下(自己对应就行):
4️⃣在头文件src/app/windows/version.h有个数字缺少了,自己填上即可,填完后记得ctrl +s保存(又可能工程点重新清除或构建的话,这个数字自动也会清除,自己补上即可)(这里填8,其他应该也行)(也可先编译debug先,然后等编译器提示后,点击错误提示再打开这个文件修改)
- ⚡️还有一个地方,要注意,就是这个
winextras
模块(如果debug过程有提示error: Unknown module(s) in QT: winextras),把这个模块直接注释掉就行,因为有的人压根安装qt的时候没安装这个,不用重新下,直接注释(我的好像安装了,而且用的是qt6,所以不注释,留着,有这个问题的朋友可以留意下)
3.3复制所需的动态链接库
1️⃣接着debug编译
,会提示缺少很多动态链接库:
2️⃣主要是把opencascade的Lib库隔壁的bin目录下,复制所有的dll到debug即可:
3️⃣另外,mayo也依赖其他的库,在Opencascade安装库目录下,找到其他第三方库的动态链接库(QT如果配置好环境变量就不用复制了,否则老实复制进去吧):
位置一般在对应文件的bin目录下:
一般依赖的第三方动态链接库如下(除Opencascade外),自己安装对应的找出来(第一次会比较烦,也可以用脚本复制,最好把需要的dll都复制到一个文件夹里面,以后用到会方便点):
把Opencascade和依赖的第三方库就复制到生成程序的debug目录下
,这样程序debug目录下,就有依赖的所有文件了(如果还有漏,自己按照提示找吧):
3.4编译完成
接着,到此应该没啥问题,debug编译,大功告成!
最后,文中若有不足,敬请批评指正!