问题背景: - better-sqlite3 v11+ 需要C++20标准支持 - C++20需要g++ 10或更高版本 - Ubuntu 20.04等老系统默认g++ 9.x,不支持C++20 - 导致WSL2用户编译失败: "unrecognized command line option '-std=c++20'" 实现内容: 1. 新增check_cpp_compiler()函数 - 检测g++是否已安装 - 获取当前g++版本号 - 如果版本<10,自动升级 2. 支持多个Linux发行版: - Ubuntu/Debian: 添加toolchain PPA,安装g++-11 - CentOS 7: 安装devtoolset-11 - CentOS 8+: 安装gcc-toolset-11 - OpenSUSE: 安装gcc11-c++ 3. 自动设置为默认编译器: - 使用update-alternatives设置优先级 - CentOS使用source启用gcc-toolset 4. 调用时机: - 安装模式:install_dependencies()末尾 - 更新模式:update_install_dependencies()中 5. 错误处理: - 升级失败时给出明确提示 - 不支持的系统给出手动升级建议 测试场景: - ✅ Ubuntu 20.04 (g++ 9.x → 11.x) - ✅ CentOS 7/8 - ✅ 已有g++ 10+的系统(跳过升级) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
85 KiB
85 KiB