安装mmdetection,运行报错Segmentation fault
具体安装过程详见https://github.com/open-mmlab/mmdetection/blob/master/docs/INSTALL.md
在安装完成mmdetection后运行test文件报错Segmentation fault(core dumped),查询后发现是由于gcc版本问题,运行mmdetection需要gcc版本大于等于4.9
安装gcc版本
因为我是在服务器上运行mmdetection,因此是在非root权限下配置自己的GCC版本,具体操作如下
- 下载gcc:gcc下载地址
安装过程:
- 解压安装GCC tar.bz2包
- 进入解压包,在命令行执行输入如下语句
tar -xjvf gcc-4.9.3.tar.bz2 # 解压 tar.bz2
cd gcc-4.9.3
./contrib/download_prerequisites # 执行下载gcc依赖包命令
- 配置软连接
mkdir objdir
cd objdir
../configure --disable-checking --enable-languages=c,c++ --disable-multilib --prefix=/path/to/install/gcc-4.9.3 --enable-threads=posix
make -j64 # 多线程编译,否则很慢,能多开就多开几个线程
make install
/path/to/install/gcc-4.9.3是自己创建的安装gcc的目录
为当前用户配置系统环境变量
- 输入cd ~回到用户目录
- 打开bashrc文件: vim ~/.bashrc
- 在文件末尾加入如下代码
export PATH=/path/to/install/gcc-4.9.3/bin:/path/to/install/gcc-4.9.3/lib64:$PATH
export LD_LIBRARY_PATH=/path/to/install/gcc-4.9.3/lib/:$LD_LIBRARY_PATH
- 输入 source ~/.bashrc 更新环境变量
- 输入 gcc -v 查看版本
安装完gcc后需要重新编译mmdetection 的配置文件
执行如下命令进行清理
python setup.py clean --all
编译mmdetection
pip install -v -e .
这个时候就可以成功运行test文件了
注:有些依赖项是可安可不安的,只运行pip install -v -e . 会安装运行所必须的依赖项,若想安装诸如albumentat
ions
, imagecorruptions这些依赖项可以执行pip instal -r requirements/optional.txt,或者直接用pip install [依赖项名字]就可以