Windows11+VS2022+OCCT7.6.0安装配置记录

news2024/12/25 12:19:08

Windows11+VS2022+OCCT7.6.0安装配置记录

  • 工具及源码准备
    • VS2022以及CMake
    • 下载OCCT源码
    • 下载第三方库
  • CMake
    • 修改occt_toolkit.cmake
    • 进行CMake
  • Visual Studio环境配置
    • 配置包含目录
    • 配置库目录
    • 配置链接器
    • 设置系统环境变量
    • 配置项目调试环境
    • 环境测试
  • 其他方法

主要参考此文,在Window11下结合 VS2022安装Open CASCADE Technology 7.6.0环境。

工具及源码准备

VS2022以及CMake

已有相关环境,略。
(CMake版本需要大于2.8,我使用的3.23)

下载OCCT源码

在这里我下载的是7.6.0
https://dev.opencascade.org/release/previous#node-83367
注意下载的时候要求登录账号,可以使用google或github账号登录注册。

在这里插入图片描述

解压到自定目录(切记,该目录不能包含中文和空格),并在同级目录下新建一个products文件夹(以及一个build文件夹和一个OCCT安装目录,这两个也可 暂时不建立)

在这里插入图片描述

下载第三方库

注意:可以通过安装的方式安装所有第三方库。
进入网页,会提示登录账号,点击 3rd party components
在这里插入图片描述

再点击Windows (win32)
在这里插入图片描述
依次点击如下三个第三方库进行下载
在这里插入图片描述

解压后放在products下

在这里插入图片描述

CMake

正式cmake之前对以下文件做一下改动。

修改occt_toolkit.cmake

opencascade-7.6.0\adm\cmake\occt_toolkit.cmake

首行新增

cmake_policy(SET CMP0054 NEW)

如:
在这里插入图片描述

进行CMake

先进行如下四步基本配置:

在这里插入图片描述

3RDPARTY_DIR输入D:\ProgramData\opencascade-7.6.0\opencascade-7.6.0\prducts,点击Configure

在这里插入图片描述

这时Configure就可以成功了,在这里再把INSTALL_DIR切换为自定的目录,重新Configure

在这里插入图片描述

点击Generate,完成后,点击Open Project
在这里插入图片描述

自动打开Visual Studio,先将平台切换为Release x64,右键解决方案,生成解决方案开始构建。
这里将平台切换为Release x64是因为个人需要,也可以不切换。默认Debug x64平台

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后右键解决方案管理器中的INSTALL,点击生成,执行make install。这样把编译好的文件安装到设置的install目录
在这里插入图片描述

在这里插入图片描述

验证一下
右键DRAWEXE下拉菜单设为启动项目,然后CTRL+F5执行,在打开的命令行窗口中即可测试DRAWEXE命令。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在打开的终端中输入以下命令绘制测试图像
在这里插入图片描述
或者运行自带demo

在这里插入图片描述

以上安装的是Release x64版本,切换平台Debug x64,重复以上操作,可以安装Debug x64版本。

Visual Studio环境配置

以Release x64为例,配置 Visual Studio项目环境。

创建一个新项目OCCT_test,设置平台为Release x64,打开属性管理器,新建属性表,命名为 OCCT7.6.0_Release_x64.props。
在这里插入图片描述

配置包含目录

D:\ProgramData\opencascade-7.6.0\OCCT\inc
D:\ProgramData\opencascade-7.6.0\products\freeimage-3.17.0-vc14-64\include
D:\ProgramData\opencascade-7.6.0\products\freetype-2.5.5-vc14-64\include
D:\ProgramData\opencascade-7.6.0\products\tcltk-86-64\include

配置库目录

D:\ProgramData\opencascade-7.6.0\OCCT\win64\vc14\lib
D:\ProgramData\opencascade-7.6.0\products\freeimage-3.17.0-vc14-64\lib
D:\ProgramData\opencascade-7.6.0\products\freetype-2.5.5-vc14-64\lib
D:\ProgramData\opencascade-7.6.0\products\tcltk-86-64\lib

配置链接器

这里需要对相关目录下的lib进行提取,Release和Debug所需的lib不一样,注意,一般开源库下面的lib目录下同时包含Debug(**d.lib)和Release(*.lib)两类lib文件,但是OCCT不一样,可以看到我们install的时候生成的文件夹就自动区分了。所以该lib下全是Release相关的lib。

在这里插入图片描述

可以用之前我写的简单小脚本的基础上修改一下来提取lib。修改后代码如下


import os

def Extract_lib(path):
    release = open("ooct_release_lib.txt", 'w')
    for file in os.listdir(path):
        if file[-4:] == '.lib':
            release.write(file)
            release.write('\n')
    release.close()


if __name__ == '__main__':
    path = r"D:\ProgramData\opencascade-7.6.0\OCCT\win64\vc14\lib"
    Extract_lib(path)

对四个库目录(如果有更多三方库的话也加上)都提取出相关lib

D:\ProgramData\opencascade-7.6.0\OCCT\win64\vc14\lib
D:\ProgramData\opencascade-7.6.0\products\freeimage-3.17.0-vc14-64\lib
D:\ProgramData\opencascade-7.6.0\products\freetype-2.5.5-vc14-64\lib
D:\ProgramData\opencascade-7.6.0\products\tcltk-86-64\lib

提取出的lib如下

TKBin.lib
TKBinL.lib
TKBinTObj.lib
TKBinXCAF.lib
TKBO.lib
TKBool.lib
TKBRep.lib
TKCAF.lib
TKCDF.lib
TKernel.lib
TKFeat.lib
TKFillet.lib
TKG2d.lib
TKG3d.lib
TKGeomAlgo.lib
TKGeomBase.lib
TKHLR.lib
TKIGES.lib
TKLCAF.lib
TKMath.lib
TKMesh.lib
TKMeshVS.lib
TKOffset.lib
TKPrim.lib
TKRWMesh.lib
TKService.lib
TKShHealing.lib
TKStd.lib
TKStdL.lib
TKSTEP.lib
TKSTEP209.lib
TKSTEPAttr.lib
TKSTEPBase.lib
TKSTL.lib
TKTObj.lib
TKTopAlgo.lib
TKV3d.lib
TKVCAF.lib
TKVRML.lib
TKXCAF.lib
TKXDEIGES.lib
TKXDESTEP.lib
TKXMesh.lib
TKXml.lib
TKXmlL.lib
TKXmlTObj.lib
TKXmlXCAF.lib
TKXSBase.lib
FreeImage.lib
FreeImagePlus.lib
freetype.lib
itclstub40.lib
tcl86.lib
tclstub86.lib
tk86.lib
tkstub86.lib

将txt中的lib文件名复制粘贴到链接器-输入-附加依赖项中。

保存属性表。

设置系统环境变量

N:OCCT_ROOT
V:D:\ProgramData\opencascade-7.6.0

打开Path,添加

%OCCT_ROOT%\OCCT\win64\vc14\bin
%OCCT_ROOT%\products\freeimage-3.17.0-vc14-64\bin
%OCCT_ROOT%\products\freetype-2.5.5-vc14-64\bin
%OCCT_ROOT%\products\tcltk-86-64\bin

在这里插入图片描述

配置项目调试环境

项目–属性–调试–环境–编辑—添加环境如下

PATH=$(OCCT_ROOT)\OCCT\win64\vc14\bin;(OCCT_ROOT)\products\freeimage-3.17.0-vc14-64\bin;(OCCT_ROOT)\products\freetype-2.5.5-vc14-64\bin;(OCCT_ROOT)\products\tcltk-86-64\bin;$(PATH)

以上基本就配置结束了。

环境测试

#include <TopoDS_Shape.hxx>
#include <BRepPrimAPI_MakeBox.hxx>
#include <STEPControl_Writer.hxx>
 
int main()
{
    // 创建盒子
    BRepPrimAPI_MakeBox boxMaker(10.0, 20.0, 30.0);
    TopoDS_Shape boxShape = boxMaker.Shape();
 
    // 保存为STEP文件
    STEPControl_Writer writer;
    writer.Transfer(boxShape, STEPControl_AsIs);
    writer.Write("box_model.step");
 
    std::cout << "盒子模型已保存为box_model.step" << std::endl;
 
    return 0;
}

其他方法

  1. 通过exe安装的方式安装所有第三库,再进行cmake编译,跟以上方法类似。
  2. 通过修改custom.bat和msvc.bat进行编译,如此文。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1059518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自然语言处理的分类

动动发财的小手&#xff0c;点个赞吧&#xff01; 简介 作为理解、生成和处理自然语言文本的有效方法&#xff0c;自然语言处理&#xff08;NLP&#xff09;的研究近年来呈现出快速传播和广泛采用。鉴于 NLP 的快速发展&#xff0c;获得该领域的概述并对其进行维护是很困难的。…

Golang 语言学习 01 包含如何快速学习一门新语言

Golang方向 区块链 go服务器端 (后台流量支撑程序) 支撑主站后台流量&#xff08;排序&#xff0c;推荐&#xff0c;搜索等&#xff09;&#xff0c;提供负载均衡&#xff0c;cache&#xff0c;容错&#xff0c;按条件分流&#xff0c;统计运行指标 (qps&#xff0c; latenc…

java飞机大战

一、 概述 1.1 项目简介 本次Java课程设计是做一个飞机大战的游戏&#xff0c;应用Swing编程&#xff0c;完成一个界面简洁流畅、游戏方式简单&#xff0c;玩起来易于上手的桌面游戏。该飞机大战项目运用的主要技术即是Swing编程中的一些窗口类库、事件监听以及贴图技术。 1…

微信小程序WebSocket实现stream流式聊天对话功能

要在微信小程序实现聊天对话功能&#xff0c;回话是流式应答&#xff0c;这里使用了WebSocket技术。WebSocket大家应该都很熟悉&#xff0c;使用wx.connectSocket就可以了。这里可能需要注意下的是流式应答&#xff0c;后端如何发送&#xff0c;前端如何接收。直接上代码&#…

【1】c++设计模式——>UML类图的画法

UML介绍 UML:unified modeling language 统一建模语言 面向对象设计主要就是使用UML类图&#xff0c;类图用于描述系统中所包含的类以及他们之间的相互关系&#xff0c;帮助人们简化对系统的理解&#xff0c;他是系统分析和设计阶段的重要产物&#xff0c;也是系统编码和测试的…

小程序 用户反馈 与 客服对话 使用说明

在开发小程序时&#xff0c;通过翻阅官方文档&#xff0c;会发现 button 的 open-type 属性有很多值可以选。因此&#xff0c;我们就可以实现相应的按钮功能。 微信开发文档-表单组件-buttonhttps://developers.weixin.qq.com/miniprogram/dev/component/button.html contact…

嵌入式学习笔记(44)S5PV210的SD卡启动实战

8.5.1任务&#xff1a;大于16KB的bin文件使用SD卡启动 (1)总体思路&#xff1a;将我们的代码分为2部分&#xff0c;第一部分BL1小于等于16KB&#xff0c;第二部分为任意大小&#xff0c;iROM代码执行完成后从SD卡启动会自动读取BL1到iRAM中执行&#xff1b;BL1执行时负责初始化…

ChatGPT启蒙之旅:弟弟妹妹的关键概念入门

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

腾讯云服务器哪个配置比较值得?

腾讯云服务器哪款配置比较好值得买&#xff1f;轻量应用服务器性价比值得买&#xff0c;轻量2核2G3M带宽95元一年、2核4G5M带宽218元一年、2核2G4M带宽三年540元一年、4核8G12M配置446元一年、8核16G18M带宽1668元15个月、16核32G28M轻量服务器3468元15个月。腾讯活动入口&…

tiny模式基本原理整合

【Tiny模式】的基本构成 M【首头在首位】 U【/】 V【HTTP/】 Host H【真实ip】 XH \r回车 \n换行 \t制表 \ 空格 一个基本的模式构成 [method] [uri] [version]\r\nHost: [host]\r\n[method] [uri] [version]\r\nHost: [host]\r\n 检测顺序 http M H XH 有些地区 XH H M 我这边…

lenovo联想台式机 拯救者 刃7000-28ICBR(90KX)原装出厂Windows10系统镜像

LENOVO联想拯救者(90KX)原厂WIN10系统 下载链接&#xff1a;https://pan.baidu.com/s/1beocPJSmnFbY4Y_ZQM2djA?pwd4d1n 系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文件格式&#xff1a;ISO 文件大…

华为云云耀云服务器L实例评测|云耀云服务器L实例部署ZFile在线网盘服务

华为云云耀云服务器L实例评测&#xff5c;云耀云服务器L实例部署ZFile在线网盘服务 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例特点 二、ZFile介绍2.1 ZFile简介2.2 ZFile特点 三、本次实践介绍3.1 本次实践简介3.2 本次环境规划 四、购买华为云…

《幸福之路》罗素(读书笔记)

目录 作者简介 作者的感悟 经典摘录 一、不幸福的成因 1、一部分要归咎于社会制度 2、一部分则得归咎于个人心理——当然&#xff0c;你可以说个人心理是社会制度的产物。 二、欠缺某些想要的东西&#xff0c;是快乐的必要条件 三、无聊与刺激 四、现代人的精神疲劳 五…

word已排序好的参考文献,插入新的参考文献,序号更新

原排序好的文献序号。 现在在3号后面插入一个新文献。4&#xff0c;5号应该成为5&#xff0c;6 这时在3号后面&#xff0c;回车&#xff0c;就会自动的增长。如下图&#xff1a; 但是如果手滑&#xff0c;把[4]删除了如何排序&#xff1f;&#xff1f; 如下图&#xff1a; …

基于Java的医院药品管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

聊天记录一句一句出现的视频制作,制作抖音聊天记录视频教程

聊天记录情感中视频制作工具是一款专注于将聊天记录转化为抖音视频的工具。它可以将平淡的聊天截图转化为生动有趣的视频&#xff0c;让你的回忆变得更加具有观赏性和情感共鸣。 首先&#xff0c;聊天记录一句一句出现的视频制作功能是该工具的一大特点。通过这个功能&#xf…

应力分析概要

1.概述 应力分析是一种用于结构件寿命分析的方法&#xff0c;最早的应用场景可能是路桥&#xff0c;因为西方提前我们两百年以上进入大工业时代。许多人工建筑的寿命是有限的&#xff0c;这类实际需求催生出寿命预测和诊断。结构件的失效&#xff0c;最根本的因素是因为应力的…

基于Matlab求解高教社杯全国大学生数学建模竞赛(CUMCM2004A题)-奥运会临时超市网点设计(附上源码+数据)

文章目录 题目思路源码数据下载 题目 2008年北京奥运会的建设工作已经进入全面设计和实施阶段。奥运会期间&#xff0c;在比赛主场馆的周边地区需要建设由小型商亭构建的临时商业网点&#xff0c;称为迷你超市&#xff08;Mini Supermarket, 以下记做MS&#xff09;网&#xf…

mybatis项目启动报错:reader entry: ���� = v

问题再现 解决方案一 由于指定的VFS没有找&#xff0c;mybatis启用了默认的DefaultVFS&#xff0c;然后由于DefaultVFS的内部逻辑&#xff0c;从而导致了reader entry乱码。 去掉mybatis配置文件中关于别名的配置&#xff0c;然后在mapper.xml文件中使用完整的类名。 待删除的…

排序---P1781 宇宙总统

思路&#xff1a; 当我们要对这些超大数进行比较排序时&#xff0c;如果我们用int或long基本数据类型时&#xff0c;会超出能承载的范围&#xff0c;因此我们选择用引用数据类型&#xff1a;BigDecimal或BigInteger。 区别在于基本数据类型直接比较大小&#xff0c;而是调用这…