pcl_catkin 下载pcl_src失败解决方法
1. 背景:
在编译voxblox++时,需要依赖pcl_catkin,在编译过程中会下载pcl 1.10.1的源码到pcl_src目录,但由于国内网络不畅或其他访问不可达的原因会编译失败,提示pcl这个仓库的地址无法访问,而我的情况是网页上可以访问,但就是clone不下来,如果你有类似的问题,或者你已经有了对应的源码包,可以参考下这里的记录;
2. 问题现象:编译错误
正克隆到 'pcl_src'... fatal: unable to access 'https://github.com/PointCloudLibrary/pcl/': gnutls_handshake() failed: The TLS connection was non-properly terminated.
3. 系统:Ubuntu 18.04 + ros melodic
4. 操作步骤:
a. 首先找到pcl_catkin包的位置,可以看到CMakeList.txt中写到pcl源码是从git仓库下载的,并且通过GIT_TAG指定了分支名字,可当前的网络环境无法正确下载,所以你需要改一下这个文件
ExternalProject_Add(pcl_src GIT_REPOSITORY https://github.com/PointCloudLibrary/pcl GIT_TAG pcl-1.10.1 UPDATE_COMMAND "" CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${CATKIN_DEVEL_PREFIX} -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS:STRING=${PCL_CXX_FLAGS} -DPCL_SHARED_LIBS=TRUE "-DCMAKE_CXX_FLAGS_${UC_BUILD_TYPE}=${CMAKE_CXX_FLAGS_${UC_BUILD_TYPE}} ${PCL_CXX_FLAGS}" )
b. 把上面的GIT_REPOSITORY和GIT_TAG删除,替换为URL的形式,前提是你需要把需要的源文件的压缩包下载到本地,注意这里必须是压缩文件的形式!
ExternalProject_Add(pcl_src URL /home/git/pcl-pcl-1.10.1.tar.gz UPDATE_COMMAND "" CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${CATKIN_DEVEL_PREFIX} -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS:STRING=${PCL_CXX_FLAGS} -DPCL_SHARED_LIBS=TRUE "-DCMAKE_CXX_FLAGS_${UC_BUILD_TYPE}=${CMAKE_CXX_FLAGS_${UC_BUILD_TYPE}} ${PCL_CXX_FLAGS}" )
c. 修改完成后保存,重新build,此时问题应该可以解决,如果没有,请参考其他博客