Cross Compiling Qt5.15.2 for raspberry pi 4
Solved
Mobile and Embedded
-
Hi. I am trying to cross compile qt 5.15.2 for raspberry pi 4 with hardware accelerated openGL support.
I have done this for beagle bone black and raspberry pi 3 before (qt 5.12 on rpi3).
I am using gcc linaro 7.5 on kubuntu 18.04 and Raspbian GNU/Linux 11 (bullseye).
I would appreciate if anyone could help. Thanks.
configure output seems fine but when compiling I get this error:qeglfsbrcmintegration.cpp:74:5: error: ‘EGL_DISPMANX_WINDOW_T’ was not declared in this scope EGL_DISPMANX_WINDOW_T *eglWindow = new EGL_DISPMANX_WINDOW_T; ^~~~~~~~~~~~~~~~~~~~~ qeglfsbrcmintegration.cpp:74:5: note: suggested alternative: ‘VC_DISPMANX_ALPHA_T’ EGL_DISPMANX_WINDOW_T *eglWindow = new EGL_DISPMANX_WINDOW_T; ^~~~~~~~~~~~~~~~~~~~~ VC_DISPMANX_ALPHA_T qeglfsbrcmintegration.cpp:74:28: error: ‘eglWindow’ was not declared in this scope EGL_DISPMANX_WINDOW_T *eglWindow = new EGL_DISPMANX_WINDOW_T; ^~~~~~~~~ qeglfsbrcmintegration.cpp:74:28: note: suggested alternative: ‘QWindow’ EGL_DISPMANX_WINDOW_T *eglWindow = new EGL_DISPMANX_WINDOW_T; ^~~~~~~~~ QWindow qeglfsbrcmintegration.cpp:74:44: error: ‘EGL_DISPMANX_WINDOW_T’ does not name a type; did you mean ‘VC_DISPMANX_ALPHA_T’? EGL_DISPMANX_WINDOW_T *eglWindow = new EGL_DISPMANX_WINDOW_T; ^~~~~~~~~~~~~~~~~~~~~ VC_DISPMANX_ALPHA_T qeglfsbrcmintegration.cpp: In function ‘void destroyDispmanxLayer(EGLNativeWindowType)’: qeglfsbrcmintegration.cpp:84:5: error: ‘EGL_DISPMANX_WINDOW_T’ was not declared in this scope EGL_DISPMANX_WINDOW_T *eglWindow = static_cast<EGL_DISPMANX_WINDOW_T *>(window); ^~~~~~~~~~~~~~~~~~~~~ qeglfsbrcmintegration.cpp:84:5: note: suggested alternative: ‘VC_DISPMANX_ALPHA_T’ EGL_DISPMANX_WINDOW_T *eglWindow = static_cast<EGL_DISPMANX_WINDOW_T *>(window); ^~~~~~~~~~~~~~~~~~~~~ VC_DISPMANX_ALPHA_T qeglfsbrcmintegration.cpp:84:28: error: ‘eglWindow’ was not declared in this scope EGL_DISPMANX_WINDOW_T *eglWindow = static_cast<EGL_DISPMANX_WINDOW_T *>(window); ^~~~~~~~~ qeglfsbrcmintegration.cpp:84:28: note: suggested alternative: ‘QWindow’ EGL_DISPMANX_WINDOW_T *eglWindow = static_cast<EGL_DISPMANX_WINDOW_T *>(window); ^~~~~~~~~ QWindow qeglfsbrcmintegration.cpp:84:52: error: ‘EGL_DISPMANX_WINDOW_T’ does not name a type; did you mean ‘VC_DISPMANX_ALPHA_T’? EGL_DISPMANX_WINDOW_T *eglWindow = static_cast<EGL_DISPMANX_WINDOW_T *>(window); ^~~~~~~~~~~~~~~~~~~~~ VC_DISPMANX_ALPHA_T qeglfsbrcmintegration.cpp:84:74: error: expected ‘>’ before ‘*’ token EGL_DISPMANX_WINDOW_T *eglWindow = static_cast<EGL_DISPMANX_WINDOW_T *>(window); ^ qeglfsbrcmintegration.cpp:84:74: error: expected ‘(’ before ‘*’ token qeglfsbrcmintegration.cpp:84:75: error: expected primary-expression before ‘>’ token EGL_DISPMANX_WINDOW_T *eglWindow = static_cast<EGL_DISPMANX_WINDOW_T *>(window); ^ qeglfsbrcmintegration.cpp:84:84: error: expected ‘)’ before ‘;’ token EGL_DISPMANX_WINDOW_T *eglWindow = static_cast<EGL_DISPMANX_WINDOW_T *>(window); ^ qeglfsbrcmintegration.cpp:88:12: error: type ‘<type error>’ argument given to ‘delete’, expected pointer delete eglWindow;
-
I used xuancong84 's solution on this post: https://forum.qt.io/topic/88588/qtbase-compilation-error-with-device-linux-rasp-pi3-g-qeglfskmsgbmwindow-cpp/9
and now it's fixed.