

























OCCT 是一个体量较大的 C++ 工程,初次构建经常因为依赖缺失、CMake 选项设置不当而受阻。本章按照官方仓库的 README.md、OCCT_BUILD.md 与 dox/dev_guides/building 文档梳理出一条稳定的搭建路径,覆盖 Windows、Linux、macOS 与常见可视化/数据交换依赖。
官方主仓库位于 GitHub:
git clone https://github.com/Open-Cascade-SAS/OCCT.git
cd OCCT
git fetch --tags
git checkout V7_8_0 # 或者最新稳定 tag
仓库默认分支是 master,长期稳定版本以 V7_x_y 形式打 tag,发布说明在 dox/dev_guides/upgrade 与每个版本的 release notes 中。如需贡献代码,应阅读 CONTRIBUTING.md 并使用 Open Cascade 的 mantis bugtracker 流程。
仓库中的 data/ 目录较大,包含示例与测试几何,可以使用 git clone --filter=blob:none --depth=N 之类策略减少带宽,但首次构建建议完整克隆,避免测试失败。
OCCT 的核心仅依赖 C++ 标准库与少量系统接口,但要启用完整功能需要以下第三方库:
| 模块 | 依赖 | 说明 |
|---|---|---|
| 可视化 | OpenGL、Freetype | OpenGl_* 后端必需,文字渲染需要 freetype |
| 数据交换 | (可选)RapidJSON、Draco | glTF 解析与压缩 |
| 测试 | Tcl/Tk | Draw Test Harness 必需 |
| 图像 IO | FreeImage 或 FFmpeg | 截图、视频录制 |
| 并行 | TBB(可选) | 并行算法加速 |
| Web 可视化 | Emscripten 工具链 | WebGL 后端 |
Open Cascade 提供官方“Third-Party Components”包(针对 Windows)打包了 freetype/freeimage/tcl/tbb 等预编译版本,下载地址在官网下载页。Linux/macOS 通常使用系统包管理器安装。
通过 Visual Studio 2019/2022 + 官方第三方包:
3rdparty-vc14-64.zip 解压到例如 C:\OpenCASCADE\3rdparty。sudo apt install build-essential cmake \
libfreetype-dev libtbb-dev tcl-dev tk-dev \
libgl1-mesa-dev libglu1-mesa-dev libxmu-dev libxi-dev \
libfreeimage-dev rapidjson-dev libdraco-dev
brew install cmake freetype tbb tcl-tk freeimage rapidjson draco
此外需要 Xcode Command Line Tools。
OCCT 推荐使用 CMake 进行跨平台构建,旧的 genproj 脚本仍可用但不再优先。常用流程:
mkdir build && cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$PWD/../install \
-DBUILD_LIBRARY_TYPE=Shared \
-DUSE_FREETYPE=ON \
-DUSE_TK=ON \
-DUSE_TBB=OFF \
-DUSE_FREEIMAGE=ON \
-DUSE_RAPIDJSON=ON \
-DUSE_DRACO=ON \
-DBUILD_MODULE_Draw=ON \
-DBUILD_MODULE_Visualization=ON \
-DBUILD_MODULE_DataExchange=ON \
-DBUILD_MODULE_ApplicationFramework=ON
cmake --build . -j$(nproc)
cmake --install .
关键 CMake 选项:
BUILD_LIBRARY_TYPE:Shared 或 Static,默认共享。Windows 上 Static 链接 toolkit 数量太大需要全 WHOLEARCHIVE。BUILD_MODULE_*:按模块开关裁剪,例如不需要数据交换可关闭 DataExchange。USE_*:是否使用某个第三方依赖,关闭后相关 toolkit 不会构建。BUILD_RELEASE_DISABLE_EXCEPTIONS:旧版本宏,默认 OFF,保留异常以便诊断。INSTALL_DIR_LAYOUT:Default 或 Unix,决定 install 目录布局,跨平台对齐时使用。BUILD_DOC_Overview:是否构建 Doxygen 文档。构建完成后,运行 Draw Test Harness 是检验环境的最直接方式:
# 设置环境
source install/env.sh # Linux/macOS
# 或 install\env.bat # Windows
# 启动 Draw
draw.sh # 或 draw.bat
# 在 Draw 控制台中执行
Draw[1]> pload ALL
Draw[2]> box b 100 50 30
Draw[3]> vinit View1
Draw[4]> vdisplay b
Draw[5]> vfit
如果窗口正常显示一个矩形盒子,则核心功能可用。再尝试:
Draw[6]> stepread test.step b1 *
Draw[7]> vdisplay b1_1
验证 STEP 数据交换是否启用。
.sln;建议把 Draw 设为启动项目调试。env.sh 作为运行环境。cmake.configureSettings 即可。OCCT 安装后会生成 OpenCASCADEConfig.cmake、OpenCASCADE<Module>Targets.cmake,使用方式:
find_package(OpenCASCADE 7.8 REQUIRED COMPONENTS
FoundationClasses ModelingData ModelingAlgorithms
Visualization DataExchange ApplicationFramework)
add_executable(myapp main.cpp)
target_link_libraries(myapp PRIVATE
TKernel TKMath TKG3d TKBRep TKTopAlgo TKBO TKPrim
TKV3d TKOpenGl TKService TKSTEP TKIGES TKDEGLTF TKXCAF)
具体 toolkit 名称在 src/<Toolkit>/PACKAGES 与 src/<Toolkit>/EXTERNLIB 中可查;Modules 与 toolkit 的对应关系在 adm/cmake/occt_modules.cmake。
3RDPARTY_FREETYPE_DIR 等 CMake 变量;Windows 上经常需要手动指定。libxcb-* 一系列包,或回退到 X11。tcl-tk@9 之外的版本。unresolved external _CLSID_(Windows):缺少 User32.lib、ComCtl32.lib,应使用官方 CMake 模板。USE_RAPIDJSON/USE_DRACO,检查 TKDEGLTF 是否生成。OCCT 体量较大(动态库总和数百 MB)。在嵌入式或商业产品中可以裁剪:
-Os;resources/);TKDESTEP、TKDEIGES、TKDESTL、TKDEGLTF、TKDEOBJ、TKDEVRML 等。仓库 .github/workflows 提供 Linux/Windows/macOS 的 CI 配置,可作为持续集成的参考。社区也有维护 Docker 镜像(如 gitpod-io/template-occt、tpaviot/oce-debian),便于在容器中快速试用。建议自有项目使用 OCI 镜像缓存第三方依赖,以加速 CI。
完成本章的环境配置后,便可以开始进入代码层面的学习。下一章将从 OCCT 的底层基础类入手。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。