c5soc_opencl icon indicating copy to clipboard operation
c5soc_opencl copied to clipboard

Compile errors building camera_sobel

Open kutenai opened this issue 5 years ago • 2 comments

Greetings. I'm trying to compile the camera_sobel, but getting compile errors.

I've tried using the 17.1 and 18.1 build tools versions, but I get the same error for both

edhenderson@ubuntu:~/proj/machine_learning/c5soc_opencl/application/camera_sobel$ make
arm-linux-gnueabihf-g++   -Wall -std=c++11 -O2 -c host/src/video.cpp -o host/src/video.o -I/home/edhenderson/intelFPGA/17.1/hld/host/include   -Ihost/inc  -I../common/inc  -I/usr/include/SDL2  -DFPGA_DEVICE 
host/src/video.cpp: In function ‘void video_set_format()’:
host/src/video.cpp:86:20: error: invalid conversion from ‘__u32 {aka unsigned int}’ to ‘v4l2_buf_type’ [-fpermissive]
  video.format.type = stream_flag;
                    ^
host/src/video.cpp: In function ‘void buffer_request()’:
host/src/video.cpp:156:24: error: invalid conversion from ‘__u32 {aka unsigned int}’ to ‘v4l2_buf_type’ [-fpermissive]
  video.buffer.req.type = stream_flag;
                        ^
Makefile:118: recipe for target 'host/src/video.o' failed
make: *** [host/src/video.o] Error 1
edhenderson@ubuntu:~/proj/machine_learning/c5soc_opencl/application/camera_sobel$ 

Do I need to go back to 16.x?? I'd really prefer to move forward of course. My next step is to start digging into the libraries and include files and see if I can track down the source of the error. I'm kind of thinking this is a version issue, but without more experience with OpenCL, it will take me some time to track this down.

Any advice or assistance would be much appreciated

kutenai avatar Apr 22 '20 20:04 kutenai

I was able to fix the above issues by modifying video.cpp

//static int stream_flag = V4L2_BUF_TYPE_VIDEO_CAPTURE;
static v4l2_buf_type stream_flag = V4L2_BUF_TYPE_VIDEO_CAPTURE;

Next, I found an issue with missing files #include <SDL2/SDL.h>

I am working on Ubuntu, so I found I could install sdr2 using apt-get. Of course, I'm pretty sure that isn't going to work since the compiler would try and build against the "ubuntu" library, but I'm cross compiling... so not I'm stuck. I did try and add the /usr/include directory to load SDR, but then it has an issue finding immintrin.h. I found this in the directory ~/intelFPGA/18.1/embedded/ds-5/sw/ARMCompiler6.10.1/lib/clang/7.0.0/include/, but then I get a ton of other errors, so, obviously, I have incompatible libraries

Can you help with information about how your environment was set up to build these applications??

kutenai avatar Apr 23 '20 19:04 kutenai

Okay, I found a way to do this, but it's a bit hacky. I'm copying the /usr/include and /usr/lib paths from the arm core and using them for cross compiling. I should be able to download this though right??

kutenai avatar Apr 23 '20 20:04 kutenai