CenterNet中DCNv2编译问题; /usr/bin/ld: cannot find -lgcc_s, command 'g++' failed with exit status 1

在尝试使用CenterNet的过程中需要对DCNv2这个模块进行编译,我是用的系统是CentOS7,使用的硬件是2080Ti,cuda的版本为10.0,其中利用./make.sh来进行编译的过程中发现了两个主要的错误:

  1. 首先是找不到cuda_runtime_api.h这个文件,这个原因,发现比较简单,只是因为还没在系统中安装cuda,虽然在anaconda里面有cudatoolkit可以使用,但是在编译的时候仍然查找了系统中的CUDA_HOME变量,所以按照步骤安装对应版本的cuda即可,我安装了cuda10.0。
  2. 其次是碰到了一下的错误信息:
/usr/bin/ld: cannot find -lgcc_s
collect2: error: ld return 1 exit status
error: comand 'g++' failed with exit status 1 

参考了很多链接,但是只有这个链接起了帮助,这个错误主要是在说ld在 /usr/bin/ 下找不到 libgcc_s.so 这个库文件,所以利用locate libgcc_s.so.1可以找到系统中 libgcc_s.so.1 库文件的路径,在我这里是 /usr/lib64/libgcc_s.so.1 ,所以使用软连接的方式来把这个路径中的库文件连接到缺少这个库文件的位置:

ln -sf /usr/lib64/libgcc_s.so.1 /usr/bin/libgcc_s.so

注意前面有 .1 ,运行这个命令后,可以顺利编译。

你可能感兴趣的:(编译,编译,目标检测,-lgcc_s,DCNv2)