WXL's blog

Talk is cheap, show me your work.

0%

FairMOT的DCN环境配置

我尝试在windows和Linux操作系统上都配置了一下,在Windows上配置的时候直接运行./make.sh可以成功,但是在Linux上却报错了,我的Linux系统是Ubuntu,而且非root用户,系统使用的gcc版本是9.3.0。

gcc版本太高

1
CUDA on Ubuntu: unsupported GNU version! gcc versions later than 7 are not supported!

这个时候不要想着去找如何在非root用户下使用不同版本的gcc教程了,直接使用conda虚拟环境安装一个gcc,版本不要太高,5.4.0即可:

1
conda install https://anaconda.org/brown-data-science/gcc/5.4.0/download/linux-64/gcc-5.4.0-0.tar.bz2

【踩坑史:】

我一开始也想着如何非root使用不同版本的gcc,查了关于如下的博客,但是还是失败了:

https://blog.csdn.net/littlehaes/article/details/103372007

https://zhuanlan.zhihu.com/p/162648425

https://blog.csdn.net/qq_43127685/article/details/103487524

https://blog.csdn.net/OliverkingLi/article/details/89645710

gcc环境部署遇到的问题

Ubuntu20.04 下手动编译安装gcc-6.3.0安装,多版本GCC 共存和切换

nvcc: not found

1
vi ~/.bashrc

将:

1
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

改为:

1
export CUDA_HOME=/usr/local/cuda

参考:

https://blog.csdn.net/loovelj/article/details/110490986

无root权限安装CUDA10.0以及gcc的降级+FairMOT构建DCNv2踩坑记录

致命错误: sys/cdefs.h:没有那个文件或目录

查阅了发现是当使用64位Ubuntu编译生成32位程序,在编译过程中报出这个错误。然后有好几个版本的解决办法,对我有效的是安装这个:

1
sudo apt install libc6-dev-i386

参考:

https://blog.csdn.net/weixin_43904540/article/details/105916664

【踩坑史:】

我在解决这个问题之前查到还有说安装下面这两个包的,但是都无法成功:

1
2
sudo apt-get install lib32readline-gplv2-dev
sudo apt-get install gcc-4.8-multilib g++-4.8-multilib

报错如下:

找不到crti.o:没有这样的文件或目录

打开~/.bashrc,在尾部添加如下内容:

1
2
LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH 
export LIBRARY_PATH

注意,修改了环境变量记得source ~/.bashrc才能生效。

参考:

https://qastack.cn/ubuntu/251978/cannot-find-crti-o-no-such-file-or-directory

ImportError: libcudart.so.10.0: cannot open shared object file: No such file or directory

打开~/.bashrc,在尾部添加如下内容:

1
2
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=$PATH:/usr/local/cuda/bin:$PATH

注意,修改了环境变量记得source ~/.bashrc才能生效。

参考:

https://blog.csdn.net/weixin_38705903/article/details/103932179

行行好,赏一杯咖啡吧~