Open CASCADE之v7.4.0源码编译与可视化调试,使用VS2017+32位编译器(1)

简介: Open CASCADE之v7.4.0源码编译与可视化调试,使用VS2017+32位编译器

1、官方源码下载(需要注册账户才能下载)


https://www.opencascade.com/content/latest-release  最新版本下载


https://www.opencascade.com/content/previous-releases  历史版本下载


https://www.opencascade.com/content/3rd-party-components 第三方依赖库,其中Freetype和Tcl/Tk是必须的


https://dev.opencascade.org/doc/overview/html/occt_dev_guides__building.html 环境搭建

目前官方最新版是v7.4.0,仅提供windows x64位的编译结果。32位就需要自己下载源码编译了。


2、准备好第三方库,下载32位的版本。


OCCT使用两种类型的第三方库,本人放弃了TBB(Threading Building Blocks),其他库都下载了:


强依赖(必须的):


Tcl/Tk

FreeType

弱依赖(可选的):


gl2ps

FreeImage

ffmpeg

VTK

TBB

3、解压官方源码包,然后建立文件夹opencascade-7.4.0\3rd,用来存放第三方库。


4、把opencascade-7.4.0\src\D3DHost路径下的头文件


D3DHost_FrameBuffer.hxx

D3DHost_GraphicDriver.hxx

D3DHost_View.hxx

拷贝到路径\opencascade-7.4.0\inc


5、编译OCCT库


image.png


使用VS2017打开OCCT库的工程文件opencascade-7.4.0\adm\msvc\vc141\OCCT.sln,以下子项目依赖第三方库:


TKD3DHost


TKDraw


TKIVtk


TKIVtkDraw


TKOpenGl


TKService


TKV3d


TKViewerTest


VS IDE主菜单-视图-属性管理器-添加新项目属性表-手动配置好第三方头文件和库文件:


C/C++,常规,附加包含目录


../../../3rd/freetype-2.5.5-vc14-32/include

../../../3rd/tcltk-86-32/include

../../../3rd/freeimage-3.17.0-vc14-32/include

../../../3rd/gl2ps-1.3.8-vc14-32/include

../../../3rd/ffmpeg-3.3.4-32/include

../../../3rd/VTK-6.1.0-vc14-32/include/vtk-6.1

%(AdditionalIncludeDirectories)

链接器,常规,附加库目录


../../../3rd/freetype-2.5.5-vc14-32/lib

../../../3rd/tcltk-86-32/lib

../../../3rd/freeimage-3.17.0-vc14-32/lib

../../../3rd/gl2ps-1.3.8-vc14-32/lib

../../../3rd/ffmpeg-3.3.4-32/lib

../../../3rd/VTK-6.1.0-vc14-32/lib

%(AdditionalLibraryDirectories)

链接器,输入,附加依赖项


freetype.lib

tcl86.lib

tk86.lib

FreeImage.lib

FreeImagePlus.lib

gl2ps.lib

最后,选择32位编译,大功告成(#^.^#)


6、可视化调试,OCCT自定义了许多对象,这些对象在VS2017默认的调试界面是看不到的.幸亏官方提供了occt.natvis文件


(1)请把OCCT官方源码包里的文件


\opencascade-7.4.0\dox\dev_guides\debug\occt.natvis


拷贝到路径


C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Packages\Debugger\Visualizers\


(2)如果你不了解.natvis文件是干什么的,请访问我的另一篇博文:


Natvis文件实现VS2013调试可视化(Debugger Visualizers)


(3)VS IDE主菜单-调试-输出窗口-natvis诊断消息-详细,可以查看natvis文件的读情况。


(4)想了解更多调试信息,请参见\opencascade-7.4.0\dox\dev_guides\debug\debug.md


7、编译mfc samples


(1)打开工程文件opencascade-7.4.0\samples\mfc\standard\All-vc141.sln


(2)选择平台工具集,Visual Studio 2017 (v141),SDK版本10.x


(3)每个子项目都需要添加依赖,考虑到项目文件包含关系复杂,这里使用绝对路径:


C/C++,常规,附加包含目录


F:\tmp-source\OCCT\opencascade-7.4.0\inc;%(AdditionalIncludeDirectories)

链接器,常规,附加库目录


F:\tmp-source\OCCT\opencascade-7.4.0\win32\vc14\libd;%(AdditionalLibraryDirectories)

(4)先编译子项目mfcsample,后编译其他


相关文章
|
算法 JavaScript 前端开发
开源项目推荐:CNC+CRC/SoftPLC/OpenCASCADE/CAD/CAM(三)
开源项目推荐:CNC+CRC/SoftPLC/OpenCASCADE/CAD/CAM
4350 1
开源项目推荐:CNC+CRC/SoftPLC/OpenCASCADE/CAD/CAM(三)
|
JavaScript 前端开发 IDE
QCAD v3.23.0.2源码编译,使用VS2017+Qt5.12.5环境
QCAD v3.23.0.2源码编译,使用VS2017+Qt5.12.5环境
1640 0
我的Qt作品(3)基于QTabWidget和AdvancedDocking实现的Ribbon风格主界面【开源】
我的Qt作品(3)基于QTabWidget和AdvancedDocking实现的Ribbon风格主界面【开源】
2541 0
我的Qt作品(3)基于QTabWidget和AdvancedDocking实现的Ribbon风格主界面【开源】
|
算法 机器人 Linux
开源项目推荐:3D点云处理软件CloudCompare,基于Qt和OpenGL
开源项目推荐:3D点云处理软件CloudCompare,基于Qt和OpenGL
7061 0
开源项目推荐:3D点云处理软件CloudCompare,基于Qt和OpenGL
|
12月前
|
运维 Linux 虚拟化
VMware虚拟机安装教程,Windows下安装VMware虚拟机,附VMware下载,Windows各版本系统镜像下载
虚拟机技术允许一台物理机运行多个操作系统,提升资源利用率,节省成本。通过快照、克隆等功能,实现系统快速恢复与复制,提高运维效率。本文详细介绍VMware虚拟机的安装步骤、Windows镜像下载及系统安装激活流程,适合初学者快速入门。
13076 0
|
人工智能 IDE 程序员
GitHub Copilot 免费了!程序员们的福音来了!
《GitHub Copilot 免费了!程序员们的福音来了!》 近日,GitHub 宣布其 AI 编程助手 GitHub Copilot 现在可以免费使用。曾经每月需支付 10 美元订阅费的 Copilot,现在向所有人开放免费版本,这对个人开发者、初学者和小型团队来说是个大好消息。免费版支持 GPT 和 Claude 模型,并提供每月 2000 次代码补全和 50 条聊天消息等核心功能。用户只需注册或登录 GitHub 账户,在 VS Code 中安装扩展并激活免费版即可使用。此外,Visual Studio Code 也完全免费,进一步降低了开发门槛。 除了
13537 7
GitHub Copilot 免费了!程序员们的福音来了!
Cmake生成指定vs版本的工程文件
本文简单总结了使用 cmake 生成 visual studio 工程文件的过程
|
编译器 C++
使用Visual Studio 2022 创建lib和dll并使用
本文介绍了如何在Visual Studio 2022中创建静态库(lib)和动态库(dll),并展示了如何使用这些库。文章详细说明了创建新项目、编写代码、生成库文件、配置项目属性以及编写测试代码的步骤,并提供了相应的截图和代码示例。作者还分享了在创建和使用库的过程中遇到的一些问题及其解决方案。
5487 0
使用Visual Studio 2022 创建lib和dll并使用
|
存储 供应链 安全
通俗易懂的说一下区块链
**区块链技术概览:** 区块链是种特殊数据库,数据以时间戳的区块形式串联成链,确保安全、透明和不可篡改。它依赖密码学保障安全,通过哈希链接保持链的完整性。去中心化网络中多个节点共享数据,采用如PoW、PoS的共识机制验证交易。应用广泛,涉及金融、供应链等,预计市场规模将持续增长。