安装与环境配置

第02章 安装与环境配置

2.1 Windows平台安装

2.1.1 下载官方安装包

SolveSpace提供Windows平台的官方安装包,支持32位和64位系统。

下载地址

  • 官方发布页: https://github.com/solvespace/solvespace/releases
  • 直接下载链接:
    • Windows 64位 (OpenMP): solvespace-vX.X-windows-x64.exe
    • Windows 32位 (OpenMP): solvespace-vX.X-windows.exe
    • Windows 64位 (单核): solvespace-vX.X-windows-single-core-x64.exe
    • Windows 32位 (单核): solvespace-vX.X-windows-single-core.exe

版本选择建议

  • 现代电脑推荐使用64位OpenMP版本,支持多核并行计算
  • 需要使用SpaceMouse等6DOF控制器时,选择32位版本(64位版本暂不支持)
  • 单核版本适用于兼容性问题排查

2.1.2 安装步骤

  1. 下载安装程序
    从GitHub releases页面下载适合系统的安装包

  2. 运行安装程序
    双击下载的 .exe 文件

  3. 选择安装选项

    • 安装路径(默认: C:\Program Files\SolveSpace
    • 创建桌面快捷方式
    • 关联 .slvs 文件
  4. 完成安装
    点击"完成"启动SolveSpace

2.1.3 便携版使用

如果不想安装,可以使用便携版:

  1. 下载 .zip 格式的发布包
  2. 解压到任意目录
  3. 直接运行 solvespace.exe

2.1.4 使用Edge/Nightly构建

如果需要测试最新功能,可以使用自动构建的边缘版本:

Windows OpenMP 32位: https://nightly.link/solvespace/solvespace/workflows/cd/master/windows.zip
Windows OpenMP 64位: https://nightly.link/solvespace/solvespace/workflows/cd/master/windows_x64.zip

⚠️ 警告: Edge构建可能不稳定,仅供测试使用

2.2 macOS平台安装

2.2.1 官方DMG安装

  1. 下载DMG文件
    从 releases 页面下载 solvespace-vX.X-macos.dmg

  2. 挂载DMG
    双击下载的DMG文件

  3. 安装应用
    SolveSpace.app 拖到 Applications 文件夹

  4. 首次运行
    由于应用未签名,首次运行需要:

    • 在Finder中右键点击应用
    • 选择"打开"
    • 确认安全提示

2.2.2 使用Homebrew安装

# 添加cask
brew install --cask solvespace

2.2.3 Edge构建

macOS: https://nightly.link/solvespace/solvespace/workflows/cd/master/macos.zip

2.3 Linux平台安装

2.3.1 通过Snap Store安装

Snap是最简单的Linux安装方式:

# 安装稳定版
sudo snap install solvespace

# 安装边缘版(最新功能)
sudo snap install solvespace --edge

2.3.2 通过Flatpak安装

# 添加Flathub仓库(如果没有)
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# 安装SolveSpace
flatpak install flathub com.solvespace.SolveSpace

# 运行
flatpak run com.solvespace.SolveSpace

2.3.3 从源码编译

对于需要自定义构建或开发的用户,从源码编译是最佳选择。

Debian/Ubuntu依赖安装

sudo apt install git build-essential cmake zlib1g-dev libpng-dev \
    libcairo2-dev libfreetype6-dev libjson-c-dev \
    libfontconfig1-dev libpangomm-1.4-dev libgl-dev \
    libglu-dev libspnav-dev libgtkmm-3.0-dev

# 可选:安装QT6用于QT界面
sudo apt install qt6-base-dev

Fedora/RHEL依赖安装

sudo dnf install git gcc-c++ cmake zlib-devel libpng-devel \
    cairo-devel freetype-devel json-c-devel \
    fontconfig-devel pangomm-devel mesa-libGL-devel \
    mesa-libGLU-devel libspnav-devel gtkmm30-devel

# 可选:QT6支持
sudo dnf install qt6-qtbase-devel

获取源代码

git clone https://github.com/solvespace/solvespace
cd solvespace
git submodule update --init

编译

mkdir build
cd build

# 基本构建
cmake .. -DCMAKE_BUILD_TYPE=Release

# 启用OpenMP多线程(推荐)
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_OPENMP=ON

# 启用LTO优化(可选,增加编译时间)
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_OPENMP=ON -DENABLE_LTO=ON

# 构建QT界面(可选)
cmake .. -DCMAKE_BUILD_TYPE=Release -DUSE_QT_GUI=ON

# 仅构建命令行工具
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_GUI=OFF

# 编译
make -j$(nproc)

# 安装(可选)
sudo make install

构建产物

  • GTK界面: build/bin/solvespace
  • QT界面: build/bin/solvespace-qt
  • 命令行工具: build/bin/solvespace-cli

2.4 从源码编译(跨平台详解)

2.4.1 获取源代码

# 克隆仓库
git clone https://github.com/solvespace/solvespace
cd solvespace

# 初始化子模块
git submodule update --init

# 子模块包括:
# - extlib/eigen          - 线性代数库
# - extlib/libdxfrw       - DXF读写库
# - extlib/mimalloc       - 内存分配器
# - extlib/q3d            - OpenGL 3D支持

2.4.2 CMake配置选项

选项 默认值 说明
CMAKE_BUILD_TYPE Debug 构建类型 (Release/Debug)
ENABLE_OPENMP OFF 启用多线程支持
ENABLE_LTO OFF 启用链接时优化
ENABLE_GUI ON 构建图形界面
ENABLE_CLI ON 构建命令行工具
ENABLE_TESTS ON 构建测试
ENABLE_COVERAGE OFF 代码覆盖率
USE_QT_GUI OFF 使用QT界面替代GTK

2.4.3 Windows交叉编译

在Linux上为Windows交叉编译:

# 安装交叉编译工具
sudo apt install mingw-w64

# 配置交叉编译
mkdir build-win64
cd build-win64
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw64.cmake \
    -DCMAKE_BUILD_TYPE=Release

# 编译
make -j$(nproc)

2.4.4 macOS编译

# 安装依赖
brew install git cmake libomp

# 配置
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_OPENMP=ON

# 编译
make -j$(sysctl -n hw.ncpu)

生成Xcode项目

mkdir build
cd build
cmake .. -G Xcode
# 然后在Xcode中打开项目

2.4.5 Web版本编译(实验性)

Web版本使用Emscripten编译为WebAssembly:

# 安装Emscripten
git clone https://github.com/emscripten-core/emsdk
cd emsdk
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
cd ..

# 编译SolveSpace Web版
mkdir build-web
cd build-web
emcmake cmake .. -DCMAKE_BUILD_TYPE=Release \
    -DENABLE_LTO=ON \
    -DENABLE_TESTS=OFF \
    -DENABLE_CLI=OFF \
    -DENABLE_COVERAGE=OFF
make

# 运行
emrun build/bin/solvespace.html

⚠️ 注意: Web版本功能不完整,存在已知问题

2.5 开发环境配置

2.5.1 IDE配置

Visual Studio Code

推荐插件:

  • C/C++ (Microsoft)
  • CMake Tools
  • clangd (代码分析)

.vscode/settings.json 示例:

{
    "cmake.buildDirectory": "${workspaceFolder}/build",
    "cmake.configureSettings": {
        "CMAKE_BUILD_TYPE": "Debug",
        "ENABLE_TESTS": "ON"
    },
    "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
}

Visual Studio

  1. 打开Visual Studio
  2. 选择"打开本地文件夹"
  3. 选择solvespace源码目录
  4. CMake会自动配置

CLion

  1. 文件 → 打开 → 选择solvespace目录
  2. CLion自动检测CMakeLists.txt
  3. 配置CMake选项

2.5.2 调试配置

Linux (GDB)

# 构建Debug版本
cmake .. -DCMAKE_BUILD_TYPE=Debug
make

# 使用GDB调试
gdb bin/solvespace
(gdb) run
# 复现崩溃后
(gdb) backtrace
(gdb) info locals

macOS (LLDB)

lldb bin/SolveSpace.app/Contents/MacOS/SolveSpace
(lldb) run
(lldb) backtrace all
(lldb) frame variable

Linux GUI调试环境变量

export G_DEBUG=fatal_warnings
export LIBGL_DEBUG=1
export MESA_DEBUG=1
./solvespace

2.5.3 运行测试

cd build

# 运行所有测试
ctest

# 运行特定测试
ctest -R constraint

# 详细输出
ctest -V

2.6 约束求解器库配置

SolveSpace的约束求解器可以作为独立库使用。

2.6.1 构建求解器库

mkdir build-solver
cd build-solver
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_GUI=OFF -DENABLE_CLI=OFF
make slvs

生成的库文件:

  • Linux: libslvs.so
  • Windows: slvs.dll
  • macOS: libslvs.dylib

2.6.2 库文件安装

# Linux
sudo cp libslvs.so /usr/local/lib/
sudo cp include/slvs.h /usr/local/include/
sudo ldconfig

# 或使用CMake安装
sudo make install

2.6.3 Python绑定安装

# 从PyPI安装
pip install py-slvs

# 从源码安装
cd solvespace
pip install .

2.7 常见问题排查

2.7.1 编译错误

错误: 找不到OpenGL

# Ubuntu/Debian
sudo apt install libgl-dev libglu-dev

# Fedora
sudo dnf install mesa-libGL-devel mesa-libGLU-devel

错误: GTK版本不匹配

# 确保安装GTK 3.16+
sudo apt install libgtkmm-3.0-dev

错误: 子模块未初始化

git submodule update --init --recursive

2.7.2 运行时问题

Linux: 显示问题

# 尝试不同的显示后端
LIBGL_ALWAYS_SOFTWARE=1 ./solvespace

macOS: 首次打开被阻止

# 移除隔离属性
xattr -d com.apple.quarantine /Applications/SolveSpace.app

Windows: DLL缺失

  • 安装 Visual C++ Redistributable
  • 使用依赖项walker检查缺失的DLL

2.7.3 性能问题

大文件打开慢

  • 减少显示弦公差设置
  • 禁用实时DOF计算

约束求解慢

  • 简化复杂约束
  • 分组设计
  • 启用OpenMP构建

2.8 总结

本章介绍了SolveSpace在各平台的安装方法:

  1. Windows: 官方安装包、便携版
  2. macOS: DMG安装、Homebrew
  3. Linux: Snap、Flatpak、源码编译
  4. 源码编译: CMake配置、跨平台编译
  5. 开发环境: IDE配置、调试设置
  6. 求解器库: 独立库构建和安装

下一章将详细介绍SolveSpace的用户界面。


导航

posted @ 2026-01-11 00:40  我才是银古  阅读(10)  评论(0)    收藏  举报