AlexeyAB / darknet

YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet )
http://pjreddie.com/darknet/
Other
21.75k stars 7.96k forks source link

Syntax Error identifier 'Input Array' #1944

Open shreesh5 opened 5 years ago

shreesh5 commented 5 years ago

I have VS2015, OpenCV 3.4.0 and CUDA 10.0 on Windows 10. When I try to build darknet.sln I get 208 errors distributed between cudaarithm.hpp, cudafeatures2d.hpp, cudaobjectdetect.hpp, cudabgsegm.hpp, and cudafilters.hpp Some of them are syntax errors such as: missing ')' before identifier 'x' missing ')' before identifier 'x' While other errors are: missing type specifier - int assumed. Note: C++ does not support default-int 'void cv::cuda::DescriptorMatcher::knnMatchAsync(void)': member function already defined or declared Errors.txt

ajrox090 commented 5 years ago

@shreesh5 did you find a solution to this?

@AlexeyAB did you get a chance to look at this?

Let me shred some light on my findings since I am facing the exact same issue. It seems that the include statements in http_stream.h are creating a kind of circular dependency which makes cudaarithm.hpp break and take wrong definitions for InputArray identifier.

it takes right definition when I comment out these two include statements in http_stream.h

#include "opencv2/highgui/highgui_c.h" #include "opencv2/imgproc/imgproc_c.h"

or if I comment out the use of cudaarithm.hpp module itself in opencv_modules.hpp.

My configurations are: Cuda 10.0, opencv 3.3.1, VS2015, cudann 7.4.1, Windows 10, gstreamer 1.0 Also tried with Cuda9.2, opencv 3.4.0. and still facing the same issue

P.S I am building opencv using cmake because I want integration of gstreamer which is not available in the prebuilt binaries out there. Also, there is no problem with installation of opencv since I ran few tutorial code using cuda and opencv libraries including cudaarithm and they ran without any issues.