From 792934c13070f9e6030a50e84700a5baec58a139 Mon Sep 17 00:00:00 2001 From: qiudejia Date: Thu, 21 May 2026 17:04:49 +0800 Subject: [PATCH] =?UTF-8?q?fix/=E6=9B=B4=E6=96=B0=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=96=87=E6=A1=A3-qdj-0521?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/FreeCAD Windows 编译运行指南.md | 145 +++++---------------- 1 file changed, 29 insertions(+), 116 deletions(-) diff --git a/docs/FreeCAD Windows 编译运行指南.md b/docs/FreeCAD Windows 编译运行指南.md index d85137e..d0221c7 100644 --- a/docs/FreeCAD Windows 编译运行指南.md +++ b/docs/FreeCAD Windows 编译运行指南.md @@ -5,15 +5,13 @@ 目标是: - 不改源码 -- 用 Visual Studio 2022 成功编译 - 能在本机直接运行 FreeCAD -- 能在 VS 里按 `F5` 调试 本文档基于下面这套已经验证成功的组合: - 源码分支:`releases/FreeCAD-1-1` - 源码版本:`1.1.1-28-g94f4cb77f6` -- 编译器:Visual Studio 2022 +- 编译器:`cmake` - 构建配置:`RelWithDebInfo | x64` - LibPack:`LibPack-1.1.0-v3.1.1.3-Release` @@ -24,10 +22,10 @@ 建议按下面这样放: ```text -D:\project\LightWork3D\FreeCAD 源码目录 -E:\fc\LibPack-1.1.0-v3.1.1.3-Release 依赖目录 -E:\fc\build-relwithdebinfo-libpack3113 构建目录 -E:\fc\run-FreeCAD-1.1.1 安装后的运行目录 +D:\LightWork3D\ 源码目录 +D:\LibPack-1.1.0-v3.1.1.3-Release 依赖目录 +D:\LightWork3D\build 构建目录 +D:\run-FreeCAD-1.1.1 安装后的运行目录 ``` 不要把所有东西都堆在一个目录里。 @@ -36,36 +34,26 @@ E:\fc\run-FreeCAD-1.1.1 安装后的运行目录 至少准备好这些: -1. `Visual Studio 2022` -2. `Desktop development with C++` 工作负载 -3. `CMake` -4. `Git` +1. `Desktop development with C++` 工作负载 +2. `CMake` +3. `Git` 建议: - 用 64 位系统 -- `E:` 盘最好预留 100GB 以上 -- `C:` 和 `D:` 至少各留 30GB 可用空间 +- `D:` 盘最好预留 100GB 以上 ## 3. 下载源码 -把 FreeCAD 源码放到: +`git clone https://git.ngsk.tech/ngskcloud/LightWork3D.git` +确认在以下目录: ```text -D:\project\LightWork3D\FreeCAD +D:\LightWork3D\ ``` -如果你已经有源码,确认当前分支是: +切换到dev分支 -```powershell -git -C D:\project\LightWork3D\FreeCAD rev-parse --abbrev-ref HEAD -``` - -应该看到: - -```text -releases/FreeCAD-1-1 -``` ## 4. 下载完全匹配的 LibPack @@ -78,81 +66,25 @@ releases/FreeCAD-1-1 下载后解压到: ```text -E:\fc\LibPack-1.1.0-v3.1.1.3-Release +D:\LibPack-1.1.0-v3.1.1.3-Release ``` 不要用 `3.1.1.2`。 这份源码配 `3.1.1.2` 时,已经实测会在链接阶段报 `boost::program_options ... contains` 相关错误。 ## 5. 清理磁盘空间 - -如果你之前编过很多次,建议先清理旧构建目录。 - -重点清理这些“可再生目录”: - -```text -旧 build 目录 -旧 LibPack 目录 -下载缓存 -C:\Users\<你的用户名>\AppData\Local\Temp -C:\Windows\Temp -``` - -如果你在编译中看到下面这些错误: - -```text -No space left on device -磁盘空间不足 -无法创建目录 -``` - -那不是源码问题,就是磁盘满了。 - +确保c盘d盘空间足够 ## 6. 新建构建目录 -在 `E:` 盘新建目录: +在 `D:\LightWork3D\build ` 构建目录 -```text -E:\fc\build-relwithdebinfo-libpack3113 -``` - -## 7. 用 CMake 生成 VS 工程 - -打开 PowerShell,执行: +## 7. 用 CMake 生成工程 -```powershell -$cmake = 'C:\CMake\bin\cmake.exe' -$src = 'D:\project\LightWork3D\FreeCAD' -$build = 'E:\fc\build-relwithdebinfo-libpack3113' -$libpack = 'E:\fc\LibPack-1.1.0-v3.1.1.3-Release' - -$env:Path = @( - 'C:\CMake\bin', - 'D:\VisualStudio\MSBuild\Current\Bin', - 'D:\VisualStudio\Common7\IDE', - 'C:\Git\cmd', - 'C:\Windows\System32', - 'C:\Windows', - 'C:\Windows\System32\Wbem', - 'C:\Windows\System32\WindowsPowerShell\v1.0', - "$libpack\bin", - "$libpack\lib" -) -join ';' - -& $cmake ` - -S $src ` - -B $build ` - -G 'Visual Studio 17 2022' ` - -A x64 ` - -D FREECAD_LIBPACK_USE=ON ` - -D FREECAD_LIBPACK_DIR=$libpack ` - -D CMAKE_CONFIGURATION_TYPES=RelWithDebInfo -``` - -成功后会生成: - -```text -E:\fc\build-relwithdebinfo-libpack3113\FreeCAD.sln +```bash +cmake -S D:\LightWork3D -B D:\LightWork3D\bulid +-DFREECAD_LIBPACK_DIR=D:\LibPack-1.1.0-v3.1.1.3-Release +-DCMAKE_DISABLE_FIND_PACKAGE_Shiboken6=TRUE +-DCMAKE_DISABLE_FIND_PACKAGE_PySide6=TRUE ``` ## 8. 编译前先记住一个坑 @@ -177,26 +109,7 @@ error C1060: 编译器的堆空间不足 继续在 PowerShell 里执行: ```powershell -$cmake = 'C:\CMake\bin\cmake.exe' -$build = 'E:\fc\build-relwithdebinfo-libpack3113' -$libpack = 'E:\fc\LibPack-1.1.0-v3.1.1.3-Release' - -$env:Path = @( - 'C:\CMake\bin', - 'D:\VisualStudio\MSBuild\Current\Bin', - 'D:\VisualStudio\Common7\IDE', - 'C:\Git\cmd', - 'C:\Windows\System32', - 'C:\Windows', - 'C:\Windows\System32\Wbem', - 'C:\Windows\System32\WindowsPowerShell\v1.0', - "$libpack\bin", - "$libpack\lib" -) -join ';' - -$env:_CL_ = '/MP1' - -& $cmake --build $build --config RelWithDebInfo --target ALL_BUILD --parallel 1 +cmake --build D:\LightWork3D\bulid --config RelWithDebInfo --target INSTALL --parallel 4 ``` 说明: @@ -211,7 +124,7 @@ $env:_CL_ = '/MP1' 很多人编译成功后,第一反应是去点: ```text -E:\fc\build-relwithdebinfo-libpack3113\bin\RelWithDebInfo\FreeCAD.exe +D:\FreeCAD\bin\RelWithDebInfo\FreeCAD.exe ``` 这通常会报各种缺 DLL,比如: @@ -229,19 +142,19 @@ E:\fc\build-relwithdebinfo-libpack3113\bin\RelWithDebInfo\FreeCAD.exe 编译完成后执行: ```powershell -$cmake = 'C:\CMake\bin\cmake.exe' -$build = 'E:\fc\build-relwithdebinfo-libpack3113' -$prefix = 'E:\fc\run-FreeCAD-1.1.1' + cmake --build D:\LightWork3D\bulid --config RelWithDebInfo --target INSTALL -& $cmake --install $build --config RelWithDebInfo --prefix $prefix + cmake --install D:\LightWork3D\bulid --config RelWithDebInfo --prefix D:\FreeCAD ``` 执行完以后,真正建议运行的是: ```text -E:\fc\run-FreeCAD-1.1.1\bin\FreeCAD.exe +D:\FreeCAD\bin\RelWithDebInfo\FreeCAD.exe ``` +# 到这一步一般就可以运行了。以下是常见问题: + ## 12. 推荐运行方式 推荐做法不是双击某个 `bat`,而是: