FS#33211 - [opencv] libopencv_ocl.so depends on libopencl.so but it is not in requirements
Attached to Project:
Arch Linux
Opened by Matt (v01d) - Wednesday, 26 December 2012, 16:54 GMT
Last edited by Ray Rashif (schivmeister) - Friday, 04 January 2013, 05:17 GMT
Opened by Matt (v01d) - Wednesday, 26 December 2012, 16:54 GMT
Last edited by Ray Rashif (schivmeister) - Friday, 04 January 2013, 05:17 GMT
|
Details
Description:
OpenCV package includes several .so files. One of these is libopencv_ocl.so which provides support for OpenCL in OpenCV. While this functionality should be optional, pkg-config and similar configuration systems include -lopencv_ocl in the link parameters, therefore breaking compilation when opencl is not present in the system. Additional info: link error: /usr/bin/ld: warning: libOpenCL.so.1, needed by /usr/lib/libopencv_ocl.so, not found (try using -rpath or -rpath-link) /usr/lib/libopencv_ocl.so: undefined reference to `clEnqueueUnmapMemObject' /usr/lib/libopencv_ocl.so: undefined reference to `clCreateProgramWithBinary' /usr/lib/libopencv_ocl.so: undefined reference to `clReleaseKernel' /usr/lib/libopencv_ocl.so: undefined reference to `clEnqueueWriteBufferRect' /usr/lib/libopencv_ocl.so: undefined reference to `clGetDeviceIDs' /usr/lib/libopencv_ocl.so: undefined reference to `clReleaseMemObject' /usr/lib/libopencv_ocl.so: undefined reference to `clGetKernelWorkGroupInfo' /usr/lib/libopencv_ocl.so: undefined reference to `clGetProgramInfo' /usr/lib/libopencv_ocl.so: undefined reference to `clCreateCommandQueue' /usr/lib/libopencv_ocl.so: undefined reference to `clEnqueueReadBufferRect' /usr/lib/libopencv_ocl.so: undefined reference to `clBuildProgram' /usr/lib/libopencv_ocl.so: undefined reference to `clFinish' /usr/lib/libopencv_ocl.so: undefined reference to `clGetProgramBuildInfo' /usr/lib/libopencv_ocl.so: undefined reference to `clEnqueueMapBuffer' /usr/lib/libopencv_ocl.so: undefined reference to `clCreateImage2D' /usr/lib/libopencv_ocl.so: undefined reference to `clEnqueueNDRangeKernel' /usr/lib/libopencv_ocl.so: undefined reference to `clEnqueueCopyBufferToImage' /usr/lib/libopencv_ocl.so: undefined reference to `clEnqueueReadBuffer' /usr/lib/libopencv_ocl.so: undefined reference to `clGetPlatformIDs' /usr/lib/libopencv_ocl.so: undefined reference to `clGetDeviceInfo' /usr/lib/libopencv_ocl.so: undefined reference to `clCreateBuffer' /usr/lib/libopencv_ocl.so: undefined reference to `clFlush' /usr/lib/libopencv_ocl.so: undefined reference to `clReleaseCommandQueue' /usr/lib/libopencv_ocl.so: undefined reference to `clReleaseProgram' /usr/lib/libopencv_ocl.so: undefined reference to `clCreateContext' /usr/lib/libopencv_ocl.so: undefined reference to `clEnqueueCopyBufferRect' /usr/lib/libopencv_ocl.so: undefined reference to `clEnqueueWriteBuffer' /usr/lib/libopencv_ocl.so: undefined reference to `clReleaseContext' /usr/lib/libopencv_ocl.so: undefined reference to `clSetKernelArg' /usr/lib/libopencv_ocl.so: undefined reference to `clCreateKernel' /usr/lib/libopencv_ocl.so: undefined reference to `clCreateProgramWithSource' Steps to reproduce: compile any opencv program using cmake or pkg-config |
This task depends upon
Closed by Ray Rashif (schivmeister)
Friday, 04 January 2013, 05:17 GMT
Reason for closing: Fixed
Additional comments about closing: 2.4.3-4
Friday, 04 January 2013, 05:17 GMT
Reason for closing: Fixed
Additional comments about closing: 2.4.3-4
Comment by
Ray Rashif (schivmeister) -
Wednesday, 26 December 2012, 19:19 GMT
Thanks, I missed a test with pkg-config, but I had somehow
expected it. The support is rather basic, in fact. To really take
advantage you will have to rebuild with the additional opencl
flags which are hardware-dependent. But since this is rather new,
I chose to introduce it in our binary this way. Anyway, will move
to depends. Otherwise if anyone objects I'll build without opencl.