一、前期准备
- Visual Studio 2019
- Cmake(下载地址)
- FreeCADLibs_12.1.2_x64_VC15,源码依赖库,x64位,里面已集成boost/Qt5/Python等依赖环境,点击详细说明,FreeCAD源码和第三方依赖库(下载地址)
二、CMake生成VS工程
1、新建文件目录(FreeCADbuild)
注意:一定要将FreeeCAD源码和第三方库放在电脑的E盘下
2、双击打开CMake主程序
(1)路径选择FreeCAD源码位置,本次设置为:E:/freeCAD3/FreeCAD-0.19_pre
(2)路径是用来存放编译后文件,本次设置为:E:/freeCAD3/freeCADbuild
然后单击“Configure”;选择x64(注意,一定要选择x64,因为依赖库FreeCADLibs_12.1.2_x64_VC15是64位的。这个很重要,如果误选了32位,则会报错),单击“Finish”。
等待一会后,会出现错误,接下来就需要设置好依赖库和需要的组合键
3、设置FreeCAD第三方库路径
找到FREECAD_LIBPACK_DIR,将路径更改为第三方库的路径,我的位置是:E:\freeCAD3\FreeCADLibs_12.1.2_x64_VC15
4、FreeCAD组合键的选择
勾选上下面的组合键
BUILD_ASSEMBLY
BUILD_QT5
BUILD_TEMPLATE
5、FreeCAD的Web组合键
最好将FreeCAD的 BUILD_WEB 的功能取消勾选,这样可以避免后期的一些错误,并且这个功能一般不需要使用。
6、先点击按钮Configure,再次点击按钮Configure,最后点击Generate。
Qt5WebKitWidgets: not needed (BUILD_WEB)
Qt5WebEngineWidgets: not needed (BUILD_WEB)
Shiboken2: 5.12.2 [E:/freeCAD3/FreeCADLibs_12.1.2_x64_VC15/lib/cmake/Shiboken2-5.12.2] [E:/freeCAD3/FreeCADLibs_12.1.2_x64_VC15/lib/cmake/Shiboken2-5.12.2/../../../include/shiboken2]
PySide2: 5.12.2 [E:/freeCAD3/FreeCADLibs_12.1.2_x64_VC15/lib/cmake/PySide2-5.12.2/../../../include/PySide2]
PySide2Tools: [E:/freeCAD3/FreeCADLibs_12.1.2_x64_VC15/bin/pyside2-uic] [E:/freeCAD3/FreeCADLibs_12.1.2_x64_VC15/bin/pyside2-rcc.exe]
Freetype: 2.9.1
OpenGLU: glu32 [glu32][]
Coin3D: [optimized;E:/freeCAD3/FreeCADLibs_12.1.2_x64_VC15/lib/Coin4.lib;debug;E:/freeCAD3/FreeCADLibs_12.1.2_x64_VC15/lib/Coin4d.lib] [E:/freeCAD3/FreeCADLibs_12.1.2_x64_VC15/include]
Matplotlib: 3.0.3
Rift: not enabled (BUILD_VR)
Doxygen: not found
Configuring done
Generating done
三、编译源码及依赖文件拷贝
1、VS2019打开E:\freeCAD3\freeCADbuild\FreeCAD_trunk.sln,使用x64位,然后选中 ALL_BUILD 右键 - 生成
过程比较耗时,需要耐心等待(最后会显示成功个数为110)。
2、文件配置
(1)把 E:\freeCAD3\FreeCADLibs_12.1.2_x64_VC15\bin 文件下的所有文件拷贝到工程目录 E:\freeCAD3\freeCADbuild\bin 文件夹下。
(2)把 E:\freeCAD3\FreeCADLibs_12.1.2_x64_VC15\plugins\platforms 文件下的所有文件拷贝到工程目录 E:\freeCAD3\freeCADbuild\bin 文件夹下。
3、将FreeCADMain设置为启动项目,点击本地Windows调试器进行调试。
编译成功之后的画面
下面推荐几个学习FreeCAD常用的网站
http://free-cad.sourceforge.net/SrcDocu/files.html
https://iesensor.com/FreeCADDoc/0.16-dev/index.html
http://www.cppblog.com/eryar/archive/2016/05/08/213461.html