当前位置: 首页 > news >正文

LibreCAD 编译详细步骤指南

环境准备确认

已安装的依赖检查

# 验证关键依赖
qmake6 --version
gcc --version
pacman -Q | grep -E "(qt6|boost|libpng|libjpeg|freetype)"

编译步骤

1. 获取源码

# 克隆 LibreCAD 源码
git clone https://github.com/LibreCAD/LibreCAD.git
cd LibreCAD# 或者下载稳定版源码包
# 解压后进入目录

2. 源码预处理

文件编码转换
# 检查并转换关键文件的编码
# 使用 iconv 或编辑器将以下文件转为 UTF-8 with BOM:
# - libraries/jwwlib/src/dl_jww.cpp
# - libraries/jwwlib/src/jwwdoc.cpp
# - libraries/jwwlib/src/jwwdoc.h
# - librecad/src/lib/engine/rs.h
使用 Notepad++ 批量转换:
  1. 打开文件
  2. 编码 → 转为 UTF-8-BOM
  3. 保存

3. 配置构建系统

修改 Boost 配置
# 编辑 boost.pri 文件
vim librecad/src/boost.pri

修改内容示例:

# 根据实际安装路径调整
BOOST_DIR = /mingw64/include
BOOST_LIBDIR = /mingw64/lib# 确认 Boost 版本
BOOST_VERSION = 1_85
检查第三方库

确保以下库文件可用:

# 检查必要的库文件
ls -la generated/lib/
# 应该包含:dxfrw.lib, dxflib.lib, jwwlib.lib, fparser.lib 等

4. 使用 Qt Creator 构建

打开项目
  1. 启动 Qt Creator
  2. 文件 → 打开文件或项目
  3. 选择 librecad.pro
  4. 选择构建套件 (MinGW 64-bit)
配置构建选项
# 在 Qt Creator 的构建设置中:
构建目录: build/
构建类型: Release
Shadow build: 启用

5. 编译顺序

第一步:编译 libraries
# 在 Qt Creator 中:
1. 右键点击 "libraries" 项目
2. 选择 "构建"
3. 等待完成
第二步:编译主项目
# libraries 编译成功后:
1. 右键点击 "librecad" 项目  
2. 选择 "构建"
3. 等待编译完成

6. 命令行编译方式

使用 qmake + make
# 创建构建目录
mkdir build
cd build# 生成 Makefile
qmake6 ../librecad.pro# 编译 (使用多核加速)
make -j$(nproc)# 或者使用 ninja (如果配置了)
qmake6 -spec win32-g++ ../librecad.pro
ninja

7. 常见编译错误及修复

错误1:字符编码问题
// 错误示例
p.DefineConst("pi", M_PI);// 修复:改为宽字符
p.DefineConst(L"pi", M_PI);
错误2:字符串转换问题
// 错误示例
std::cout << e.GetMsg() << std::endl;// 修复:使用 QString 转换
std::cout << QString::fromStdWString(e.GetMsg()).toStdString() << std::endl;
错误3:成员初始化问题
// 在头文件 rs_actiondrawcircletan2.h 中
// 注释掉类内初始化
// circleType = 0;// 在 .cpp 文件的构造函数中初始化
RS_ActionDrawCircleTan2::RS_ActionDrawCircleTan2(...) : circleType(0)  // 在初始化列表中初始化
{// ...
}
错误4:资源文件缺失
# 复制资源文件到构建目录
cp -r licenses/ build/Win32/Release/
cp -r librecad/src/resources/ build/Win32/Release/

8. 依赖库处理

检查动态库依赖
# 使用 ldd 检查可执行文件的依赖
ldd librecad.exe# 确保以下库可用:
# - Qt6Core.dll
# - Qt6Gui.dll  
# - Qt6Widgets.dll
# - libstdc++-6.dll
# - libgcc_s_seh-1.dll
# - libwinpthread-1.dll
复制运行时依赖
# 将必要的 DLL 复制到可执行文件目录
cp /mingw64/bin/Qt6Core.dll build/release/
cp /mingw64/bin/Qt6Gui.dll build/release/
cp /mingw64/bin/Qt6Widgets.dll build/release/
# ... 其他需要的 DLL

9. 测试运行

启动应用程序
# 进入构建目录
cd build/release# 运行 LibreCAD
./librecad.exe
功能验证
  1. 检查界面是否正常显示
  2. 测试基本绘图功能
  3. 验证文件打开/保存功能

10. 打包发布

创建发布包
# 收集所有必要文件
mkdir LibreCAD-Portable
cp librecad.exe LibreCAD-Portable/
cp -r licenses/ LibreCAD-Portable/
cp -r library/ LibreCAD-Portable/
cp -r qm/ LibreCAD-Portable/# 复制 DLL 文件
cp /mingw64/bin/*.dll LibreCAD-Portable/# 创建启动脚本(可选)
echo '#!/bin/bash' > LibreCAD-Portable/run.sh
echo './librecad.exe' >> LibreCAD-Portable/run.sh

故障排除

常见问题解决

Q1: 找不到 Qt 模块
# 确保 Qt6 安装正确
pacman -S mingw-w64-x86_64-qt6-base
Q2: Boost 链接错误
# 检查 Boost 版本和路径
echo $BOOST_DIR
ls $BOOST_LIBDIR/libboost*
Q3: 编译卡住或内存不足
# 减少并行编译任务
make -j2  # 使用 2 个核心

编译成功标志

  • 无编译错误和警告
  • 生成 librecad.exe 可执行文件
  • 应用程序正常启动
  • 基本功能测试通过
http://www.dtcms.com/a/470520.html

相关文章:

  • 2025年100道最新软件测试面试题,常见面试题及答案汇总
  • (15)100天python从入门到拿捏《面向对象编程》
  • Spring AI Alibaba 与 Ollama 集成初探:从环境搭建到首次调用
  • 营销型网站的标准网站flash导入页
  • 汉中专业网站建设开发怎么上国外网站
  • Windows上离线安装 PostgreSQL
  • MySQL——表的操作
  • langchain官网翻译:Build a Question/Answering system over SQL data
  • 我的HarmonyOS百宝箱
  • 广州十大室内设计公司排名网站推广seo教程
  • h5网站用什么软件做网站域名备案证书下载
  • 南京本地网站有哪些做网页需要什么
  • 机器学习破解生命之谜:内在无序蛋白质设计迎来革命性突破
  • Springboot之常用注解
  • 从 0 到 1 搭建 Python 语言 Web UI自动化测试学习系列 14--二次开发--封装公共方法 2
  • 做平面的公司网站DNF做钓鱼网站
  • SpringBoot 集成 LangChain4j RAG Redis
  • 【QT】customPlot 设置图例透明背景和文字颜色
  • AT指令解析:ring_buffer、信号量、互斥量等基础知识
  • 任务网站(做任务学技能的)潍坊市建设局网站
  • 【算法】——动态规划之路径问题
  • 阿里云企业建站教程泰州东方医院
  • 东阿县住房和城乡建设局网站申请做版主 再什么网站
  • 深入理解数据在内存中的存储:整数与浮点数的二进制表示
  • 广东网站营销seo费用品牌推广活动有哪些
  • 特效音网站建设公司官网制作平台
  • MySQL数据库安装后,如何设置自动化备份策略?
  • 【开题答辩全过程】以 保险业务信息管理系统为例,包含答辩的问题和答案
  • 进口食品销售销售在那个网站做seo托管
  • 公司模板网站建设成绩查询系统网站开发