pcl_catkin 下载pcl_src失败解决方法

发布时间 2023-06-30 21:52:55作者: 蹦点儿一下
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,此时问题应该可以解决,如果没有,请参考其他博客