无sudo权限下升级GCC至5版本 解决detectron2编译报错
解决方案
CPU环境与编译器问题的关联
- 完全正确,当前编译器报错和你使用CPU环境无关。detectron2无论是CPU还是GPU版本,编译阶段都需要支持C++17标准的编译器,你的系统gcc版本过低,无法识别
-std=c++17参数才引发了错误。
无sudo权限安装高版本GCC(5.x及以上)
由于没有root权限,推荐通过conda在个人环境内安装适配的gcc工具链,无需修改系统配置,步骤如下:
- 激活你的目标conda环境:
conda activate your_env_name # 替换为你的conda环境名称 - 安装conda-forge提供的gcc、g++工具包(版本选择5.x及以上,示例安装7.x版本):
conda install -c conda-forge gcc_linux-64 gxx_linux-64 - 验证安装后的编译器版本:
输出应显示conda安装的高版本号,而非系统旧版本。gcc --version g++ --version - 重新安装detectron2:
- 优先选择适配CPU的预编译wheel包(需匹配你的torch版本):
(注:若你的torch版本不是1.10,需调整链接中对应的torch版本号,如torch1.9、torch1.11等)pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cpu/torch1.10/index.html - 若预编译包不匹配,可从源码编译安装:
git clone https://github.com/facebookresearch/detectron2.git cd detectron2 # 指定使用conda安装的编译器 export CC=$(which gcc) export CXX=$(which g++) pip install -e .
- 优先选择适配CPU的预编译wheel包(需匹配你的torch版本):
额外排查点
- 若安装后gcc版本仍显示系统旧版本,需确保conda环境的bin目录优先级高于系统路径:
export PATH=$CONDA_PREFIX/bin:$PATH
内容的提问来源于stack exchange,提问作者Georgia
相关产品推荐
相关产品推荐

