LibreCAD v2.2.0源码编译,使用VS2019+Qt5.12.9+Boost1.71.0环境

简介: LibreCAD v2.2.0源码编译,使用VS2019+Qt5.12.9+Boost1.71.0环境

零、前言


LibreCAD is a fork of QCAD community edition version 2.0.5.0;therefore, any modifications of or additions to the program are also released under the GPLv2.


LibreCAD 是一款开源免费的 2D CAD 制图软件,原名为 CADuntu 。它是基于社区版本 QCad 构建,并利用 Qt4 进行了重构,原生支持 Mac OSX, Windows 和 Linux 。它提供了基于 GPL 协议的读取/修改/创建 CAD 文件 (.dxf ) 方案。


LibreCAD源自QCad的老版本,v2.0.5,using mingw-5.1.4 and qt-3.3.x-p8.


https://sourceforge.net/projects/qcadbin-win/


The project's first commit on Github was Aug 16, 2010.


http://librecad.org/

https://wiki.librecad.org/

https://github.com/LibreCAD/LibreCAD

https://sourceforge.net/projects/librecad/files/

安装包


https://sourceforge.net/projects/librecad/files/playground/master/


https://sourceforge.net/projects/librecad/files/Windows/NightlyBuilds/master/



一、环境准备


1、VS2019,Qt5.12.9/x64,Qt VS Tools插件


http://download.qt.io/official_releases/qt/


2、boost v1.71.0下载:


https://www.boost.org/


https://dl.bintray.com/boostorg/release/ -- 下载boost_1_71_0-msvc-14.2-64.exe文件(含源码和编译好的库)


3、检查一下Windows环境变量是否正确:


设置Windows的环境变量。推荐使用工具Rapid Environment Editor。http://www.rapidee.com/


Path=F:\Software\Qt\Qt5.12.9\5.12.9\msvc2017_64\bin


QTDIR=F:\Software\Qt\Qt5.12.9\5.12.9\msvc2017_64\

BOOST_DIR=T:\tmp-source\boost_1_71_0


BOOST_LIBDIR=T:\tmp-source\boost_1_71_0\lib64-msvc-14.2


4、LibreCAD官网下载源码


https://github.com/LibreCAD/LibreCAD/releases


<1>使用Windows记事本,修改以下源文件的编码为Unicode或者带BOM的UTF-8,否则编译会出错:


F:\CADCAM\QCAD\src\LibreCAD-2.2.0\libraries\jwwlib\src\
dl_jww.cpp
jwwdoc.cpp
jwwdoc.h
f:\cadcam\qcad\src\librecad-2.2.0\librecad\src\lib\engine\rs.h


<2>\LibreCAD-2.2.0\librecad\src\boost.pri文件有对boost的依赖库作说明,用的是静态库.


5、打开VS2019(使用Qt Creator也行),主菜单->Qt VS Tools->打开librecad.pro文件,最后可能会提示出错(Import): Error(s): ,没关系,不管它。


开始编译源码,过程中会报错:


(1)4>f:\cadcam\qcad\src\librecad-2.2.0\librecad\src\actions\rs_actiondrawcircletan2.h(82): error C2797: “RS_ActionDrawCircleTan2::enTypeList”: 未实现成员初始值设定项列表或非静态数据成员初始值设定项内的列表初始化 (编译源文件 ui\forms\qg_circletan2options.cpp),解决办法:


\LibreCAD-2.2.0\librecad\src\actions\rs_actiondrawlinetangent2.h修改为    
//list of entity types supported by current action
    //const std::initializer_list<RS2::EntityType> circleType {RS2::EntityArc, RS2::EntityCircle, RS2::EntityEllipse};
  const std::initializer_list<RS2::EntityType> circleType;
\LibreCAD-2.2.0\librecad\src\actions\rs_actiondrawlinetangent2.cpp修改为 
RS_ActionDrawLineTangent2::RS_ActionDrawLineTangent2(
    RS_EntityContainer& container,
    RS_GraphicView& graphicView)
  :RS_PreviewActionInterface("Draw Tangents 2", container, graphicView)
  ,circle1(nullptr)
  ,circle2(nullptr)
  ,valid(false)
  ,circleType({ RS2::EntityArc, RS2::EntityCircle, RS2::EntityEllipse })

(2)错误 C1083 无法打开源文件: “Win32\Debug\licenses\\qrc_licenses.cpp”: No such file or directory,解决办法:


把\LibreCAD-2.2.0\librecad\src\Win32\licenses拷贝到\LibreCAD-2.2.0\librecad\src\Win32\Debug


(3)\LibreCAD-master\librecad\src\muparser.pri


LIBS += -L$$GEN_LIB_DIR -lmuparser

       #PRE_TARGETDEPS += $$GEN_LIB_DIR/libmuparser.a #firecat

(4)\LibreCAD-master\librecad\src\src.pro


GEN_LIB_DIR = ../../generated/lib
#PRE_TARGETDEPS += $$GEN_LIB_DIR/libdxfrw.a \ #firecat
#  $$GEN_LIB_DIR/libjwwlib.a #firecat
LIBS += -L$$GEN_LIB_DIR -ldxfrw #firecat
LIBS += -L$$GEN_LIB_DIR -ljwwlib #firecat

二、BRL-CAD


BRL-CAD是一个强大的开源跨平台实体建模系统,包括交互式几何编辑、用于渲染和几何分析的高性能射线跟踪、一个系统性能分析基准套件、应用程序开发人员的几何库,以及超过30年的积极开发。BRL-CAD和LibreCAD在谷歌程序中合作。我们在BRL-CAD的保护下参与谷歌Code-in和谷歌Summer of Code,在那里我们指导学生和学生参与开源项目。


https://brlcad.org/


https://github.com/BRL-CAD


https://sourceforge.net/projects/brlcad/files/


相关文章
|
4月前
|
C++
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
本文介绍了如何编译整合VTK 9.2、DICOM 0.8、DCMTK 3.6.7和Qt 6.2的步骤,包括安装Qt、CMake配置以及确认相关路径和版本设置。
101 1
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
|
4月前
|
Unix 网络虚拟化 C++
VS2022+Qt5.14.2成功编译MITK2022.10
使用VS2022和Qt5.14.2成功编译MITK2022.10的过程,包括编译结果的截图、遇到的编译问题的解决方法、两个重要的注意事项(patch文件格式的修改和ITK-gitclone-lastrun文件的存在),以及参考链接。文中详细描述了如何解决编译过程中遇到的错误C2220和警告C4819,以及如何修改文件编码和尾行格式。
218 1
VS2022+Qt5.14.2成功编译MITK2022.10
|
4月前
|
计算机视觉
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
这篇文章记录了使用VS2019编译Qt6.2.4、DCMTK3.6.7、VTK9.2.2、ITK5.3和OpenCV4.6.0的过程,包括下载和编译步骤,并提供了遇到编译错误时的解决方案和参考链接。
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
|
4月前
|
Windows
QT源码拾贝6-11(qwindowswindow)
这篇文章深入探讨了Qt源码中与窗口激活相关的函数,QDebug运算符重载,vscode的变量提示,Windows常用类型名,获取所有窗体的方法,以及QSharedPointer智能指针的使用。
108 0
QT源码拾贝6-11(qwindowswindow)
|
4月前
|
存储 Java C++
QT源码拾贝0-5(qimage和qpainter)
这篇文章介绍了在Qt源码中qimage和qpainter的使用,包括线程池的使用、智能指针的存储、std::exchange函数的应用、获取类对象的方法以及QChar字节操作。
QT源码拾贝0-5(qimage和qpainter)
|
4月前
|
C语言 C++ Windows
QT多插件通信框架CTK编译记录
本文记录了编译QT多插件通信框架CTK的过程,包括编译结果截图、部署配置、Log4Qt编译配置、参考链接和拓展资料。文中提供了详细的编译步骤和配置文件示例,以及相关的资源链接。
100 0
QT多插件通信框架CTK编译记录
|
6月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
216 1
|
5月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
131 0
|
4月前
Qt开发
Qt开发
|
4月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
105 0