几年前写过一篇博文:《QCAD v3.23.0.2源码编译,使用VS2017+Qt5.12.5环境》
https://blog.csdn.net/libaineu2004/article/details/100217789
https://github.com/qcad/qcad
https://gitee.com/mirrors/qcad
现在qcad版本也一直更新,于是决定使用VS2019再写一篇编译教程。
一、先说新版本spatialindexnavel的编译问题
从v3.28.2.0开始有legacy文件夹,
\src\3rdparty\legacy\存放了老版本的opennurbs和spatialindexnavel
\src\3rdparty\存放了新版本的opennurbs和spatialindexnavel
但是我使用vs2019编译新版本的spatialindexnavel会出错
spatialindexnavel.dll : fatal error LNK1120: 105 个无法解析的外部命令
由于该问题无法解决,本人就无法使用VS2019去编译新版本qcad源码了。
只能选择最近的,且没有legacy文件夹的版本,v3.28.1.3。
二、编译v3.28.1.3的过程
1、在VS2019的主菜单-扩展-打开Qt VS Tools,并选择Open Qt Project File(.pro)。
会自动生成解决方案文件\qcad-v3.28.1.3\qcad-v3.28.1.3\qcadqcad.sln
然后使用VS2019打开这个sln文件
2、修复几处错误或遗漏
在main.cpp新增头文件#include <locale>
qcadcmd.com删除【生成后事件】的命令行和说明
3、一键编译,成功
4、然后再vs2019打开这个文件
\qcad-v3.28.1.3\qcad-v3.28.1.3\src\3rdparty\qt-labs-qtscriptgenerator-5.15.2\qcadqt-labs-qtscriptgenerator-5.sln
一键编译,成功
5、运行\qcad-v3.28.1.3\qcad-v3.28.1.3\debug\qcad.exe,成功
6、\qcad-v3.28.1.3\qcad-v3.28.1.3\plugins\
该路径会有编译生成的插件文件,debug模式编译,会自动加上后缀_debug
qcaddxf_debug.dll
qcadscripts_debug.dll
插件加载的的源码在RPluginLoader.cpp
\qcad-v3.28.1.3\qcad-v3.28.1.3\src\core\RPluginLoader.cpp