mmdetection踩坑记录 error: command 'g++' failed with exit status 1

最近在搭建一个基于基于mmdetection的一个环境,遇到了各种gcc   g++问题:

1. ''ImportError:

***/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/../../../libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /DB/rhome/yuhangzhou/miniconda3/envs/open-mmlab/lib/python3.7/site ackages/torch/lib/libtorch_python.so)'',

解决办法:

then i remove original libstdc++.so.6, and run ''ln -s libstdc++.so.6.0.26 libstdc++.so.6''
after that, i run '''python setup.py develop' again,

2.error: command 'g++' failed with exit status 1

/home1/wang-internship-1/anaconda3/envs/aerial/compiler_compat/ld: cannot find -lm
/home1/wang-internship-1/anaconda3/envs/aerial/compiler_compat/ld: cannot find -lpthread
/home1/wang-internship-1/anaconda3/envs/aerial/compiler_compat/ld: cannot find -lc
collect2: error: ld returned 1 exit status
error: command 'g++' failed with exit status 1

这个bug找了很多博客,都说是让安装g++,但是我是在服务器上搭环境,没有root权限

偶然间在下面连接中找到了解决办法:

https://stackoverflow.com/questions/47512182/cannot-find-lfftw3-omp-error-when-compiling-a-third-party-package-how-to-lin

解决方法是找到包含-lm、-lpthread、-lc的文件,并将其连接到所需的文件夹下

以-lpthread为例:

(1)在终端中输入指令:ld -lpthread --verbose

 

 找到succeeded路径,作为path 1

如上图的中path 1可以为/usr/lib/x86_64-linux-gnu/libpthread.so

(2)然后从错误信息:/home1/wang-internship-1/anaconda3/envs/aerial/compiler_compat/ld: cannot find -lpthread

         中获得path 2=/home1/wang-internship-1/anaconda3/envs/aerial/compiler_compat/

(3)最后在终端中输入指令:

         ln -s path 1 path 2

(4)用类似的方法分别处理-lm、-lc

         执行编译程序python setup.py develop 或 bash compile.sh

示例:ln -s /usr/lib/x86_64-linux-gnu/libpthread.so /home1/wang-internship-1/anaconda3/envs/aerial/compiler_compat/

注:过程中会出现很多wanring,大约10分钟

但是结果会出现finished

 

posted @ 2020-12-30 22:25  番茄--  阅读(7075)  评论(0编辑  收藏  举报