libhpp-fcl.so not found 的问题

在编译涉及到pinocchio库的时候,可能会出现与hpp-fcl库有关的下列问题:

/usr/bin/ld: warning: libhpp-fcl.so, needed by /home/zyq/A_Biped/cetc_humbot0812/src/library/pinocchio/lib/libpinocchio.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: /home/zyq/A_Biped/cetc_humbot0812/src/library/pinocchio/lib/libpinocchio.so: undefined reference to vtable for hpp::fcl::Box'
/usr/bin/ld: /home/zyq/A_Biped/cetc_humbot0812/src/library/pinocchio/lib/libpinocchio.so: undefined reference to vtable for hpp::fcl::Sphere'
/usr/bin/ld: /home/zyq/A_Biped/cetc_humbot0812/src/library/pinocchio/lib/libpinocchio.so: undefined reference to vtable for hpp::fcl::MeshLoader'
/usr/bin/ld: /home/zyq/A_Biped/cetc_humbot0812/src/library/pinocchio/lib/libpinocchio.so: undefined reference to vtable for hpp::fcl::Capsule'
/usr/bin/ld: /home/zyq/A_Biped/cetc_humbot0812/src/library/pinocchio/lib/libpinocchio.so: undefined reference to hpp::fcl::AABB::AABB()'
/usr/bin/ld: /home/zyq/A_Biped/cetc_humbot0812/src/library/pinocchio/lib/libpinocchio.so: undefined reference to vtable for hpp::fcl::Cylinder'
/usr/bin/ld: /home/zyq/A_Biped/cetc_humbot0812/src/library/pinocchio/lib/libpinocchio.so: undefined reference to hpp::fcl::BVHModelBase::buildConvexRepresentation(bool)'
collect2: error: ld returned 1 exit status
make[2]: *** [humbot_control/CMakeFiles/junior_ctrl.dir/build.make:584:/home/zyq/A_Biped/cetc_humbot0812/devel/lib/humbot_control/junior_ctrl] 错误 1
make[1]: *** [CMakeFiles/Makefile2:3876:humbot_control/CMakeFiles/junior_ctrl.dir/all] 错误 2
make: *** [Makefile:146:all] 错误 2
Invoking "make -j20 -l20" failed

你遇到的错误表明在链接阶段找不到必要的库文件,并且未能解决一些未定义的符号引用问题。具体来说:

libhpp-fcl.so 找不到:
这是一个 hpp-fcl 库的缺失问题。你需要确保这个库文件存在于你的系统中,并且链接器可以找到它。

undefined reference 错误:
这类错误表明 libpinocchio.so 依赖的 hpp-fcl 库中包含的符号在链接时没有被找到。这可能是由于 hpp-fcl 库没有正确安装或配置,或者 libpinocchio 在编译时没有正确链接到 hpp-fcl

解决步骤

  • 安装 hpp-fcl
    确保 hpp-fcl 库已经安装。如果没有安装,你可以通过包管理器或从源代码编译安装:
sudo apt install ros-noetic-hpp-fcl
  • 设置 LD_LIBRARY_PATH
    如果你已经安装了 hpp-fcl 库,但仍然遇到找不到库文件的错误,你可能需要设置 LD_LIBRARY_PATH 环境变量以包含库文件的路径:
export LD_LIBRARY_PATH=/path/to/hpp-fcl/lib:$LD_LIBRARY_PATH
  • 检查 CMakeLists.txt 配置:
    确保 CMakeLists.txt 文件中正确地链接了 hpp-fcl 库。在 target_link_libraries 中添加 hpp-fcl
target_link_libraries(your_target
  pinocchio
  hpp-fcl
  ...
)
  • 检查 hpp-fcl 库文件:
    确认 hpp-fcl 的库文件存在于指定的路径中,并且该路径在你的编译和链接路径中。例如,确认 libhpp-fcl.so 文件在 /usr/lib/usr/local/lib 中。

总结

你的错误主要是由于找不到 hpp-fcl 库和链接时未能解析符号。通过确保正确安装和配置 hpp-fcl,设置 LD_LIBRARY_PATHCMakeLists.txt 中的链接选项,应该能够解决这些问题。

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值