GPU support on Mac OS X 10.7.3 - Cuda 4.1.28 (Bug #1877)
Description
The compilation with "WITH_CUDA" flag fails. All errors are like this, and located in imgproc.cpp (in GPU module):
opencv-2.4/modules/gpu/src/imgproc.cpp:373:5: error:
no matching function for call to 'buildWarpPlaneMaps'
buildWarpPlaneMaps(dst_roi.tl().x, dst_roi.tl().y, map_x, map_y, ...
It seems to be a namespace problem. using cv::gpu::device::imgproc::buildWarpPlaneMaps(...) solve the problem
Associated revisions
Merge pull request #1877 from tim36272:patch-2
History
Updated by Alexander Shishkov almost 13 years ago
- Target version changed from 2.4.0 to 2.4.1
Updated by Anatoly Baksheev almost 13 years ago
We don't have such problems. We tested it with CUDA4.2 MacOS 10.6.7.
Anyway I added namespaces in trunk and 2.4 branch.
Is it still reproduced?
Updated by Marco Bertini almost 13 years ago
I'm experiencing this issue as well:
OSX: 10.7.3
CUDA Toolkit: 4.2
/Users/bertini/Documents/workspace/libs_c/OpenCV-2.4.0/modules/gpu/src/imgproc.cpp:373:5: error: no matching function for call to 'buildWarpPlaneMaps'
buildWarpPlaneMaps(dst_roi.tl().x, dst_roi.tl().y, map_x, map_y, K_Rinv.ptr<float>(), R_Kinv.ptr<float>(),
^~~~~~~~~~~~~~~~
/Users/bertini/Documents/workspace/libs_c/OpenCV-2.4.0/modules/gpu/src/imgproc.cpp:357:15: note: candidate function not viable: no known conversion from 'int' to 'Size'
(aka 'Size_<int>') for 1st argument;
void cv::gpu::buildWarpPlaneMaps(Size src_size, Rect dst_roi, const Mat &K, const Mat& R, const Mat &T,
^
/Users/bertini/Documents/workspace/libs_c/OpenCV-2.4.0/modules/gpu/src/imgproc.cpp:405:5: error: no matching function for call to 'buildWarpCylindricalMaps'
buildWarpCylindricalMaps(dst_roi.tl().x, dst_roi.tl().y, map_x, map_y, K_Rinv.ptr<float>(), R_Kinv.ptr<float>(), scale, StreamAccessor::getStream(stream));
^~~~~~~~~~~~~~~~~~~~~~
/Users/bertini/Documents/workspace/libs_c/OpenCV-2.4.0/modules/gpu/src/imgproc.cpp:390:15: note: candidate function not viable: no known conversion from 'int' to 'Size'
(aka 'Size_<int>') for 1st argument;
void cv::gpu::buildWarpCylindricalMaps(Size src_size, Rect dst_roi, const Mat &K, const Mat& R, float scale,
^
/Users/bertini/Documents/workspace/libs_c/OpenCV-2.4.0/modules/gpu/src/imgproc.cpp:437:5: error: no matching function for call to 'buildWarpSphericalMaps'
buildWarpSphericalMaps(dst_roi.tl().x, dst_roi.tl().y, map_x, map_y, K_Rinv.ptr<float>(), R_Kinv.ptr<float>(), scale, StreamAccessor::getStream(stream));
^~~~~~~~~~~~~~~~~~~~
/Users/bertini/Documents/workspace/libs_c/OpenCV-2.4.0/modules/gpu/src/imgproc.cpp:422:15: note: candidate function not viable: no known conversion from 'int' to 'Size'
(aka 'Size_<int>') for 1st argument;
void cv::gpu::buildWarpSphericalMaps(Size src_size, Rect dst_roi, const Mat &K, const Mat& R, float scale,
^
/Users/bertini/Documents/workspace/libs_c/OpenCV-2.4.0/modules/gpu/src/imgproc.cpp:1146:33: error: cannot initialize an array element of type 'Caller' (aka 'void ()(const
PtrStep<cufftComplex>, const PtrStep<cufftComplex>, DevMem2D_<cufftComplex>, cudaStream_t)') with an lvalue of type 'void (const cv::gpu::GpuMat &, const
cv::gpu::GpuMat &, cv::gpu::GpuMat &, int, bool, cv::gpu::Stream &)'
static Caller callers[] = { mulSpectrums, mulSpectrums_CONJ };
^~~~~~~~~~
/Users/bertini/Documents/workspace/libs_c/OpenCV-2.4.0/modules/gpu/src/imgproc.cpp:1175:33: error: cannot initialize an array element of type 'Caller' (aka 'void ()(const
PtrStep<cufftComplex>, const PtrStep<cufftComplex>, float, DevMem2D_<cufftComplex>, cudaStream_t)') with an lvalue of type 'void (const cv::gpu::GpuMat &, const
cv::gpu::GpuMat &, cv::gpu::GpuMat &, int, float, bool, cv::gpu::Stream &)'
static Caller callers[] = { mulAndScaleSpectrums, mulAndScaleSpectrums_CONJ };
^~~~~~~~~~~~~~~~~~
[ 69%] Built target opencv_legacy
5 errors generated.
make2: * [modules/gpu/CMakeFiles/opencv_gpu.dir/src/imgproc.cpp.o] Error 1
make1: * [modules/gpu/CMakeFiles/opencv_gpu.dir/all] Error 2
Updated by Marco Bertini almost 13 years ago
Compiling with:
C++ Compiler: /usr/bin/c++
nirvana:build bertini$ /usr/bin/c++ --version
Apple clang version 3.1 (tags/Apple/clang-318.0.58) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.3.0
Thread model: posix
Updated by Marco Bertini almost 13 years ago
I confirm that to eliminate the first three errors (those about no matching functions) it's enough to fully qualify the names of the functions using cv::gpu::device::imgproc
Updated by Marco Bertini almost 13 years ago
All the errors are eliminated by adding the namespaces.
Updated by Anatoly Baksheev almost 13 years ago
The issue was fixed in trunk & 2.4 branch. Will release with 2.4.1 in the end of May.
Please reopen if it is still reproduced, since even without the fix I had no errors under my mac.
- Status changed from Open to Done