目录
本文记录了使用 FreeCAD 提供的依赖库包 LibPack-0.19 Version 1.0 在 Windows 平台下进行 FreeCAD-0.19 编译的过程,并对所遇问题进行解决说明,供参考。
1. 准备工作
在开始编译前,一定要仔细阅读官方的文档,其中对编译各个事项均做了详细说明:
Compile on Windows - FreeCAD Documentation
下载 FreeCADv0.19 代码,:
下载库包 LibPack version 1.0:
其他工具准备:
CMake、Git、VS2017
2. 材料说明
LibPack version 1.0 的发布页面对其中包含的库进行了简单说明,其中有些库尽管也包含在包内,但作者未进行说明。
- OpenSSL 3.0.0
- LibSSL 1.1.1
- Curl
- Qt 5.15.2
- PySide2 build against Qt 5.15
- Coin3D 4.0
- Pivy
- Python 3.8
- OpenCascade 7.5.3 (with Fillet fix from blobfish / occt · GitLab provided by Chris Hennes)
- Boost 1.67
其中所用 OCCT 的版本为7.5.3,Python所用的版本为3.8。
3. 编译
将下载的 FreeCAD 源码、LibPack放置好,新建 build 目录,配置如下
使用CMake进行配置,设置源码目录、生成目录。点击“配置”后设置编译器、生成平台。结束后再次点击“配置”。
此时会出现如下报错,是因为 CMake 未能自动检测到 LibPack目录所致。
在 FREECAD_LIBPACK_DIR 条目下设置正确的 LibPack 目录即可,再次配置。
接下来,系统会报出 Qt 版本不适配的错误,设置 BUILD_QT5 条目为 True 即可。再次配置。
至此,我们就可以成功配置了。另有三个“FREECAD_COPY”开头的条目,分别用于将依赖库、LibPack 二进制文件、Qt插件文件拷贝至build目录,为免去后续环境目录的配置,我们将这三个选项设置为 True。
另有 FREECAD_USE_MPCOMPILE_FLAG 的条目,用于启用多处理器编译,加快编译,我们也激活该选项。
本次编译仅为调试FreeCAD,关于安装的选项未做设置。
点击“生成”,在build目录下生成解决方案文件.sln。 使用 vs2017 打开该文件,生成“ALL_BUILD”项目,即可生成 FreeCAD。
4. 运行
项目 “FreeCADMain” 是程序的入口,将此项目设置为启动项,启动调试器,即可进入 FreeCAD。
设置断点,即可进行调试。
5. 总结
借助 LibPack ,FreeCAD的编译容易很多,不需要再在本地依据版本手动配置各种依赖。CMake的设置有以下要点,也可以一次设置完毕。
- 设置 FREECAD_LIBPACK_DIR 为解压后的 LibPack 目录
- 设置 BUILD_QT5 为 True
- 设置 FREECAD_COPY_DEPEND_DIRS_TO_BUILD 为True
- 设置 FREECAD_COPY_LIBPACK_BIN_TO_BUILD 为True
- 设置 FREECAD_COPY_PLUGINS_BIN_TO_BUILD 为True
使用上述方法即可获取一份能调试的 FreeCAD,方便学习 FreeCAD。其他版本的 FreeCAD 编译过程类似。如果想进一步通过 FreeCAD 调试 OCC,可以先编译一套与 LibPack 中 OCC 版本匹配的OCC,然后将所得pdb文件拷贝至 build\bin 目录下。其中编译OCC本身、版本匹配、Release\Debug 后缀之分等问题应也有不少坑要踩。