Files
vue-driven-cloud-storage/install.sh
喻勇祥 0dc2ac9188 功能: 自动检测并升级C++编译器版本
问题背景:
- 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>
2025-11-12 15:18:01 +08:00

85 KiB