5de74b543a
VDE-001 through VDE-013 all resolved in v1.0.1 ViewDesign workarounds can now be removed
1.3 KiB
1.3 KiB
id, status, severity, category, date, reporter
| id | status | severity | category | date | reporter |
|---|---|---|---|---|---|
| VDE-001 | fixed | fixed | compat | 2026-07-27 | ViewDesign |
VDE-001: brep 模块编译失败(GCC/MSVC 兼容性)
问题描述
ViewDesignEngine 代码主要为 MSVC 编写。MSVC 默认不执行两阶段名称查找,因此模板代码中引用 AABB3D、Point3D 等类型时无需显式 using 声明。GCC/Clang 严格遵循 C++ 标准,要求两阶段查找,导致编译错误。brep 模块引用了未在当前编译单元中声明的类型(如 AABB3D 在 ssi_boolean.cpp 中通过 using namespace vde::core 间接引入),这在 GCC 下是不允许的。
影响文件
- src/brep/ssi_boolean.cpp
- src/brep/brep_face_split.cpp
- src/brep/brep_heal.cpp
- src/brep/tolerant_modeling.cpp
- src/mesh/halfedge_mesh.cpp
ViewDesign 侧 Workaround
在 vd_geom 中仅链接 vde_foundation + vde_core,不链接 vde_brep 及其依赖项(vde_curves, vde_mesh, vde_boolean 等)。通过 cmake/vde_gcc_compat.h 强行注入 using 声明。
建议修复方向
- 在 brep 模块的所有 .cpp 文件顶部添加显式 using 声明
- 重构代码避免在模板上下文中使用未限定的短名称
- 考虑使用 using namespace vde::core 或逐类型 using 声明
- 在 CI 中增加 GCC/Clang 编译检查
此文件由 ViewDesign 工程自动生成。处理完成后请更新 status 字段。