项目场景:
在ubuntu2018中搭建darknet_ros框架,使用yolo进行物体检测。
问题描述
`darknet_ros编译失败,出现下面情况
In file included from /usr/include/host_config.h:50:0,
from /usr/include/cuda_runtime.h:78,
from <command-line>:0:
/usr/include/crt/host_config.h:121:2: error: #error -- unsupported GNU version! gcc versions later than 6 are not supported!
#error -- unsupported GNU version! gcc versions later than 6 are not supported!
^~~~~
原因分析:
上面的报错信息中提示到的是GCC版本过高,要使用GCC-6或者以下版本,这里我们选择gcc-5版本。(因为darknet是c语言编写的,G++可改可不改,但建议一起更改)
参考文章
[ubuntu]GCC与CUDNN版本不兼容
error: #error – unsupported GNU version! gcc versions later than 6 are not supported!
解决方案:
1、安装gcc-5 g+±5
sudo apt-get install gcc-5 g++-5
2、进入usr/bin
cd usr/bin
3、删除原来的gcc 和g++映射
sudo rm gcc g++
4、重新创建映射
sudo ln -s gcc-5 gcc
sudo ln -s g++-5 g++
5、进入cuda更改相应的gcc g++映射
cd usr/local/cuda/bin
sudo rm gcc g++
sudo ln -s /usr/bin/gcc /usr/local/cuda/bin/gcc
sudo ln -s /usr/bin/g++ /usr/local/cuda/bin/g++
问题解决
Scanning dependencies of target darknet_ros
Scanning dependencies of target darknet_ros_nodelet
[ 97%] Building CXX object darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/src/yolo_object_detector_node.cpp.o
[ 97%] Building CXX object darknet_ros/darknet_ros/CMakeFiles/darknet_ros_nodelet.dir/src/yolo_object_detector_nodelet.cpp.o
[ 98%] Linking CXX executable /home/ycx/yolo/devel/lib/darknet_ros/darknet_ros
[100%] Linking CXX shared library /home/ycx/yolo/devel/lib/libdarknet_ros_nodelet.so
[100%] Built target darknet_ros_nodelet
[100%] Built target darknet_ros