darknet_ros error shooting: undefined reference to `clReleaseMemObject@OPENCL_1.0'

libkinect2_registration.so: undefined reference to `clReleaseMemObject@OPENCL_1.0'
/home/robot/catkin_ws/devel/lib/libkinect2_registration.so: undefined reference to `clEnqueueWriteBuffer@OPENCL_1.0'
/home/robot/catkin_ws/devel/lib/libkinect2_registration.so: undefined reference to `clReleaseDevice@OPENCL_1.2'
/home/robot/catkin_ws/devel/lib/libkinect2_registration.so: undefined reference to `clGetPlatformInfo@OPENCL_1.0'

https://github.com/code-iai/iai_kinect2/issues/305

https://github.com/OpenKinect/libfreenect2/issues/775

https://github.com/OpenKinect/libfreenect2/issues/804

and I noticed that the solution of developer is as following:

web address:https://github.com/OpenKinect/libfreenect2/issues/804


OK, so this only happens with third party compilation using installed libfreenect2.so, which is why I didn't see it happen with Protonect. To reproduce, firstsudo make install libfreenect2, then cd examples; mkdir build && cd build; cmake ..; make.

The cause of the issue is this:

First, libfreenect2 is built with ocl-icd which provides versioned libOpenCL.so. Therefore libfreenect2.so requires versioned symbols.
Then, when compiling an app with this libfreenect2, CUDA's libOpenCL.so will take precendence somehow and CUDA's libOpenCL.so is unversioned. So GCC would enforce versioning and report undefined references tosymbol@version. But at runtime this versioning doesn't seem to be strictly enforced.

Still thinking about what to do with it.


although I do not want to do this, but I did it, I changed to the libfreenect2 directory, and removed the build folder, then created a new folder named build. And do as the github tutorial of libfreenect2 requestagain,and …
it passed the catkin_make!

Commands list is as following:


sudo rm -fr build/

mkdir build && cd build

cmake.. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2

make

sudo make install


Fortunately the problem was solved!

warning: do not try to delete the related packages and do catkin_make, I have tried to remove the libkinect2_registrationpackage, and the workspace of catkin_ws can’t pass the catkin_make either.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值