darknet_ros error shooting: undefined reference to `clReleaseMemObject@OPENCL_1.0'
来源:互联网 发布:吉他教学软件 编辑:程序博客网 时间:2024/06/08 20:01
/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, thencd 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.
- darknet_ros error shooting: undefined reference to `clReleaseMemObject@OPENCL_1.0'
- error: undefined reference to `pthread_create'
- undefined reference to error解决方法
- undefined reference to error解决方法
- undefined reference to error解决方法
- undefined reference to error解决方法
- error:undefined reference to `coloured_LED_init'
- undefined reference to error解决方法
- Error: undefined reference to png_check_sig
- undefined reference to error解决方法
- Error:undefined reference to '_imp__ZN12QApplicationC1ERiPPci'
- error: undefined reference to 'property_set
- undefined reference to error解决方法
- error undefined reference to '__android_log_print'
- error: undefined reference to '__aeabi_uidiv'
- error: undefined reference to 'bsd_signal'
- error: undefined reference to '__gxx_personality_v0'
- undefined reference to 'GetStockObject@4 linker error
- Java NioSocket 的用法
- eclipse查看快捷键及自主设置定义快捷键
- list集合导出Excel文件(二)
- 自己总结的web前端面试题之php
- C语言编程实现三子棋
- darknet_ros error shooting: undefined reference to `clReleaseMemObject@OPENCL_1.0'
- 利用spring AOP功能进行日志管理
- SSH框架搭建
- 341. Flatten Nested List Iterator
- 制作ZedBoard-linaro-desktop-ubuntu全过程之编译Linux内核
- Win7 安装VS2010, .net framework 4.0 失败,错误HRESULT 0xc8000222解决办法
- Linux中遇到问题时常用命令
- SQL SERVER 数据库备份压缩机制
- 【JAVA】Properties文件以及XML文件的读取操作