qt-everywhere-4.7.3-ARM交叉编译移植(三)

26 篇文章 0 订阅
 -I/home/linuxsir/dvsdk/ti-dvsdk_dm3730-evm_4_02_00_06/linux-devkit/arm-none-linux-gnueabi/usr/include -o .obj/release-shared-emb-arm/qgl.o qgl.cpp
In file included from qgl.cpp:44:
qgl.h:61:22: error: GLES/gl.h: No such file or directory
In file included from ../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:66,
                 from ../../include/QtGui/private/qegl_p.h:1,
                 from qgl_p.h:68,
                 from qgl.cpp:68:
/home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/include/GLES-GL-VG/OPGL/GLES/egl.h:10:21: error: EGL/egl.h: No such file or directory
In file included from qgl.cpp:44:
qgl.h:66: error: 'GLfloat' does not name a type
qgl.h:341: error: 'GLuint' does not name a type
qgl.h:343: error: 'GLuint' does not name a type
qgl.h:346: error: 'GLuint' does not name a type
qgl.h:348: error: 'GLuint' does not name a type
qgl.h:350: error: 'GLuint' does not name a type
qgl.h:352: error: 'GLuint' has not been declared
qgl.h:354: error: 'GLuint' has not been declared

$vim /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/include/GLES-GL-VG/OPGL/GLES/egl.h

10 #include "egl.h"
 11 #include "gl.h"
 12 
 13 #endif /* __legacy_egl_h_ */

$find -name "qgl.h"

$vim ./src/opengl/qgl.h

 57 #if defined(Q_WS_MAC)
 58 # include <OpenGL/gl.h>
 59 # include <OpenGL/glu.h>
 60 #elif defined(QT_OPENGL_ES_1)
 61 # include "gl.h"
 62 #ifndef GL_DOUBLE

--------------------------------------------------------------------------------------------------------------

-I/home/linuxsir/dvsdk/ti-dvsdk_dm3730-evm_4_02_00_06/linux-devkit/arm-none-linux-gnueabi/usr/include -o .obj/release-shared-emb-arm/qgl.o qgl.cpp
In file included from ../../include/QtGui/private/qegl_p.h:1,
                 from qgl_p.h:68,
                 from qgl.cpp:68:
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:116: error: 'NativeWindowType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:117: error: 'NativePixmapType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:118: error: 'NativeDisplayType' does not name a type
In file included from ../../include/QtGui/private/qegl_p.h:1,
                 from qgl_p.h:68,
                 from qgl.cpp:68:
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:206: error: 'EGLConfig' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:208: error: 'EGLConfig' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:209: error: 'EGLSurface' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:216: error: 'EGLint' was not declared in this scope
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:222: error: 'EGLDisplay' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:224: error: 'EGLNativeDisplayType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:225: error: 'EGLNativeWindowType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:226: error: 'EGLNativePixmapType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:229: error: 'EGLDisplay' was not declared in this scope
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:229: error: 'EGLContext' was not declared in this scope
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:229: error: expected primary-expression before 'target'
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:229: error: expected primary-expression before 'buffer'
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:229: error: expected primary-expression before 'const'
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:229: error: initializer expression list treated as compound expression
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:230: error: 'EGLBoolean' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:231: error: 'EGLBoolean' does not name a type
In file included from qgl.cpp:68:
qgl_p.h:365: error: 'EGLSurface' does not name a type
qgl_p.h:367: error: 'EGLSurface' does not name a type
qgl_p.h:499: warning: unused parameter 'boundPixmap'
In file included from ../../include/QtOpenGL/private/qglpixelbuffer_p.h:1,
                 from qgl.cpp:88:
../../include/QtOpenGL/private/../../../src/opengl/qglpixelbuffer_p.h:197: error: 'EGLSurface' does not name a type
../../include/QtOpenGL/private/../../../src/opengl/qglpixelbuffer_p.h: In constructor 'QGLPixelBufferPrivate::QGLPixelBufferPrivate(QGLPixelBuffer*)':
../../include/QtOpenGL/private/../../../src/opengl/qglpixelbuffer_p.h:153: error: class 'QGLPixelBufferPrivate' does not have any field named 'pbuf'
qgl.cpp: In member function 'void QGLContextPrivate::init(QPaintDevice*, const QGLFormat&)':
qgl.cpp:1693: error: 'eglSurface' was not declared in this scope
qgl.cpp:1693: error: 'EGL_NO_SURFACE' was not declared in this scope
make[1]: *** [.obj/release-shared-emb-arm/qgl.o] Error 1
make[1]: Leaving directory `/home/linuxsir/dvsdk/qt-everywhere-opensource-src-4.7.3-arm/src/opengl'
make: *** [sub-opengl-make_default-ordered] Error 2

$vim mkspec/qws/linux-omap/qmake

QMAKE_LIBDIR            = /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/lib /home/linuxsir/arm-linux/arm-2009q1/lib /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/lib/alsa-lib/smixer /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/tslib/lib /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/lib/openGlVg /home/linuxsir/dvsdk/ti-dvsdk_dm3730-evm_4_02_00_06/linux-devkit/arm-none-linux-gnueabi/usr/lib

$cd  include/QtGui/private/../../../src/gui/

$vim include/QtGui/private/../../../src/gui/Makefile

$make clean

$make

ln -s libQtGui.so.4.7.3 libQtGui.so
ln -s libQtGui.so.4.7.3 libQtGui.so.4
ln -s libQtGui.so.4.7.3 libQtGui.so.4.7
rm -f ../../lib/libQtGui.so.4.7.3
rm -f ../../lib/libQtGui.so
rm -f ../../lib/libQtGui.so.4
rm -f ../../lib/libQtGui.so.4.7
mv -f libQtGui.so.4.7.3 libQtGui.so libQtGui.so.4 libQtGui.so.4.7 ../../lib/

-------------------------------------------------------------------------------------------------------------------
/qgl.h/

-I/home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/lib/openGlVg -o .obj/release-shared-emb-arm/qgl.o qgl.cpp
In file included from ../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:60,
                 from ../../include/QtGui/private/qegl_p.h:1,
                 from qgl_p.h:68,
                 from qgl.cpp:68:
/home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/include/GLES-GL-VG/OPGL2/GLES2/gl2.h:576: error: declaration of C function 'void glTexImage2D(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, const void*)' conflicts with
/home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/include/GLES-GL-VG/OPGL/GLES/gl.h:727: error: previous declaration 'void glTexImage2D(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*)' here
In file included from ../../include/QtGui/private/qegl_p.h:1,
                 from qgl_p.h:68,
                 from qgl.cpp:68:
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:116: error: 'NativeWindowType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:117: error: 'NativePixmapType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:118: error: 'NativeDisplayType' does not name a type
In file included from ../../include/QtGui/private/qegl_p.h:1,
                 from qgl_p.h:68,
                 from qgl.cpp:68:
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:206: error: 'EGLConfig' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:208: error: 'EGLConfig' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:209: error: 'EGLSurface' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:216: error: 'EGLint' was not declared in this scope
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:222: error: 'EGLDisplay' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:224: error: 'EGLNativeDisplayType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:225: error: 'EGLNativeWindowType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:226: error: 'EGLNativePixmapType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:229: error: 'EGLDisplay' was not declared in this scope
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:229: error: 'EGLContext' was not declared in this scope
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:229: error: expected primary-expression before 'target'
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:229: error: expected primary-expression before 'buffer'
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:229: error: expected primary-expression before 'const'
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:229: error: initializer expression list treated as compound expression
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:230: error: 'EGLBoolean' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:231: error: 'EGLBoolean' does not name a type
In file included from qgl.cpp:68:
qgl_p.h:365: error: 'EGLSurface' does not name a type
qgl_p.h:367: error: 'EGLSurface' does not name a type
qgl_p.h:499: warning: unused parameter 'boundPixmap'
In file included from ../../include/QtOpenGL/private/qglpixelbuffer_p.h:1,
                 from qgl.cpp:88:
../../include/QtOpenGL/private/../../../src/opengl/qglpixelbuffer_p.h:197: error: 'EGLSurface' does not name a type
../../include/QtOpenGL/private/../../../src/opengl/qglpixelbuffer_p.h: In constructor 'QGLPixelBufferPrivate::QGLPixelBufferPrivate(QGLPixelBuffer*)':
../../include/QtOpenGL/private/../../../src/opengl/qglpixelbuffer_p.h:153: error: class 'QGLPixelBufferPrivate' does not have any field named 'pbuf'
qgl.cpp: In member function 'void QGLContextPrivate::init(QPaintDevice*, const QGLFormat&)':
qgl.cpp:1693: error: 'eglSurface' was not declared in this scope
qgl.cpp:1693: error: 'EGL_NO_SURFACE' was not declared in this scope
make: *** [.obj/release-shared-emb-arm/qgl.o] Error 1

$vim ./src/opengl/qgl.cpp

  67 #include "qimage.h"
  68 #include "egl.h"  //added       
  69 #include "egltypes.h" //added
  70 #include "qgl_p.h"


$vim ./src/opengl/qgl.h


 77 # include "gl.h"
 78 # ifndef QT_LINUXBASE
 79 #   include "glu.h"
 80 # endif
 81 #endif

------------------------------------------------------------------------------------------------------------------
/opengl/

-I/home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/lib/openGlVg -o .obj/release-shared-emb-arm/qglpixelbuffer.o qglpixelbuffer.cpp
In file included from ../../include/QtGui/private/qegl_p.h:1,
                 from ../../include/QtOpenGL/private/../../../src/opengl/qgl_p.h:68,
                 from ../../include/QtOpenGL/private/qgl_p.h:1,
                 from ../../include/QtOpenGL/private/../../../src/opengl/qglpixelbuffer_p.h:60,
                 from ../../include/QtOpenGL/private/qglpixelbuffer_p.h:1,
                 from qglpixelbuffer.cpp:92:
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:119: error: 'NativeWindowType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:120: error: 'NativePixmapType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:121: error: 'NativeDisplayType' does not name a type
In file included from ../../include/QtGui/private/qegl_p.h:1,
                 from ../../include/QtOpenGL/private/../../../src/opengl/qgl_p.h:68,
                 from ../../include/QtOpenGL/private/qgl_p.h:1,
                 from ../../include/QtOpenGL/private/../../../src/opengl/qglpixelbuffer_p.h:60,
                 from ../../include/QtOpenGL/private/qglpixelbuffer_p.h:1,
                 from qglpixelbuffer.cpp:92:
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:209: error: 'EGLConfig' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:211: error: 'EGLConfig' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:212: error: 'EGLSurface' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:220: error: 'EGLint' was not declared in this scope
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:226: error: 'EGLDisplay' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:228: error: 'EGLNativeDisplayType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:229: error: 'EGLNativeWindowType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:230: error: 'EGLNativePixmapType' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:233: error: 'EGLDisplay' was not declared in this scope
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:233: error: 'EGLContext' was not declared in this scope
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:233: error: expected primary-expression before 'target'
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:233: error: expected primary-expression before 'buffer'
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:233: error: expected primary-expression before 'const'
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:233: error: initializer expression list treated as compound expression
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:234: error: 'EGLBoolean' does not name a type
../../include/QtGui/private/../../../src/gui/egl/qegl_p.h:235: error: 'EGLBoolean' does not name a type
In file included from ../../include/QtOpenGL/private/qgl_p.h:1,
                 from ../../include/QtOpenGL/private/../../../src/opengl/qglpixelbuffer_p.h:60,
                 from ../../include/QtOpenGL/private/qglpixelbuffer_p.h:1,
                 from qglpixelbuffer.cpp:92:
../../include/QtOpenGL/private/../../../src/opengl/qgl_p.h:365: error: 'EGLSurface' does not name a type
../../include/QtOpenGL/private/../../../src/opengl/qgl_p.h:367: error: 'EGLSurface' does not name a type
../../include/QtOpenGL/private/../../../src/opengl/qgl_p.h:499: warning: unused parameter 'boundPixmap'
In file included from ../../include/QtOpenGL/private/qglpixelbuffer_p.h:1,
                 from qglpixelbuffer.cpp:92:
../../include/QtOpenGL/private/../../../src/opengl/qglpixelbuffer_p.h:197: error: 'EGLSurface' does not name a type
../../include/QtOpenGL/private/../../../src/opengl/qglpixelbuffer_p.h: In constructor 'QGLPixelBufferPrivate::QGLPixelBufferPrivate(QGLPixelBuffer*)':
../../include/QtOpenGL/private/../../../src/opengl/qglpixelbuffer_p.h:153: error: class 'QGLPixelBufferPrivate' does not have any field named 'pbuf'
qglpixelbuffer.cpp: In member function 'void QGLPixelBufferPrivate::common_init(const QSize&, const QGLFormat&, QGLWidget*)':
qglpixelbuffer.cpp:155: error: 'class QGLContextPrivate' has no member named 'eglSurface'
qglpixelbuffer.cpp:155: error: 'pbuf' was not declared in this scope
qglpixelbuffer.cpp: In member function 'void* QGLPixelBuffer::handle() const':
qglpixelbuffer.cpp:384: error: 'const class QGLPixelBufferPrivate' has no member named 'pbuf'
make[1]: *** [.obj/release-shared-emb-arm/qglpixelbuffer.o] Error 1
make[1]: Leaving directory `/home/linuxsir/dvsdk/qt-everywhere-opensource-src-4.7.3-arm/src/opengl'
make: *** [sub-opengl-make_default-ordered] Error 2

$vim ./src/opengl/qgl.cpp

  67 #include "qimage.h"
  68// #include "egl.h"  //added       
  69// #include "egltypes.h" //added
  70 #include "qgl_p.h"


$vim ./src/opengl/qgl.h

 51 QT_BEGIN_HEADER
 52 
 53 #if defined(Q_WS_WIN)
 54 # include <QtCore/qt_windows.h>
 55 #endif
 56 
 57 #include "egltypes.h" //added
 58 
 59 #if defined(Q_WS_MAC)
 60 # include "gl.h" //amended
 61 # include "OpenGL/glu.h"
 62 #elif defined(QT_OPENGL_ES_1)
 63 # include "gl.h"   //amended
 64 #ifndef GL_DOUBLE
 65 # define GL_DOUBLE GL_FLOAT
 66 #endif
 67 #ifndef GLdouble
 68 typedef GLfloat GLdouble;
 69 #endif
 70 #elif defined(QT_OPENGL_ES_2)
 71 # include "gl2.h"  //amended
 72 #ifndef GL_DOUBLE
 73 # define GL_DOUBLE GL_FLOAT
 74 #endif
 75 #ifndef GLdouble
 76 typedef GLfloat GLdouble;
 77 #endif
 78 #else
 79 # include "gl.h"   //amended
 80 # ifndef QT_LINUXBASE

-------------------------------------------------------------------------------------------------------------
/opengl/

-I/home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/lib/openGlVg -o .obj/release-shared-emb-arm/qgl_qws.o qgl_qws.cpp
In file included from qgl_qws.cpp:46:
./qglscreen_qws.h:61:22: error: GLES/egl.h: No such file or directory
In file included from ../../include/QtGui/private/qeglproperties_p.h:1,
                 from ../../include/QtGui/private/../../../src/gui/egl/qeglcontext_p.h:60,
                 from ../../include/QtGui/private/qeglcontext_p.h:1,
                 from qgl_egl_p.h:57,
                 from qgl_qws.cpp:43:
../../include/QtGui/private/../../../src/gui/egl/qeglproperties_p.h: In member function 'bool QEglProperties::isEmpty() const':
../../include/QtGui/private/../../../src/gui/egl/qeglproperties_p.h:77: error: 'EGL_NONE' was not declared in this scope
In file included from ../../include/QtOpenGL/private/qgl_p.h:1,
                 from qgl_qws.cpp:53:
../../include/QtOpenGL/private/../../../src/opengl/qgl_p.h: At global scope:
../../include/QtOpenGL/private/../../../src/opengl/qgl_p.h:499: warning: unused parameter 'boundPixmap'
qgl_qws.cpp: In function '_KEGL_SURFACE_* qt_egl_create_surface(QEglContext*, QPaintDevice*, const QEglProperties*)':
qgl_qws.cpp:160: error: 'eglCreateWindowSurface' was not declared in this scope
qgl_qws.cpp:163: error: 'eglCreatePixmapSurface' was not declared in this scope
qgl_qws.cpp:166: error: 'eglGetError' was not declared in this scope




$find -name "qglscreen_qws.h"


$vim ./src/opengl/qglscreen_qws.h


 58 #if defined(QT_OPENGL_ES_2)
 59 #include "egl.h"
 60 #else
 61 #include "egl.h"
 62 #endif

vim ../../include/QtGui/private/../../../src/gui/egl/qeglproperties_p.h

77     bool removeValue(int name);
 78     //bool isEmpty() const { return props[0] == EGL_NONE; }
 79     bool isEmpty() const { return props[0] == 0x3038; }

$vim src/opengl/qgl.h

 57 //#include "egltypes.h" //added
 58 #include "egl.h" //added

$vim mkspecs/qws/linux-omap-g++/qmake.conf

QMAKE_INCDIR            = /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/include/GLES-GL-VG/OPGL2/GLES2 /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/include/GLES-GL-VG/OPGL/GLES /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/include/GLES-GL-VG/OVG/VG /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/include /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/lib/dbus-1.0/include/dbus /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/include/dbus-1.0/dbus /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/include/alsa /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/tslib/include /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/lib/glib-2.0/include /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/include/libxml2/libxmlinclude /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/include/glib-2.0/glib /home/linuxsir/dvsdk/ti-dvsdk_dm3730-evm_4_02_00_06/linux-devkit/arm-none-linux-gnueabi/usr/include /home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/lib/openGlVg

$make 

past !
------------------------------------------------------------------------
/openvg/

VG/openvg.h: No such file or directory

-I/home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/lib/openGlVg -o .obj/release-shared-emb-arm/qpaintengine_vg.o qpaintengine_vg.cpp
In file included from ../../include/QtOpenVG/private/../../../src/openvg/qvg_p.h:45,
                 from ../../include/QtOpenVG/private/qvg_p.h:1,
                 from qpixmapdata_vg_p.h:57,
                 from qpaintengine_vg.cpp:43:
../../include/QtOpenVG/private/../../../src/openvg/qvg.h:52:23: error: VG/openvg.h: No such file or directory
In file included from ../../include/QtOpenVG/private/qvg_p.h:1,
                 from qpixmapdata_vg_p.h:57,
                 from qpaintengine_vg.cpp:43:
../../include/QtOpenVG/private/../../../src/openvg/qvg_p.h:96: error: 'VGImageFormat' does not name a type
../../include/QtOpenVG/private/../../../src/openvg/qvg_p.h:108: error: 'VGImageFormat' does not name a type
In file included from qpaintengine_vg.cpp:43:
qpixmapdata_vg_p.h:107: error: 'VGImage' does not name a type
qpixmapdata_vg_p.h:110: error: 'VGImage' does not name a type
qpixmapdata_vg_p.h:161: error: 'VGImage' does not name a type
qpixmapdata_vg_p.h:162: error: 'VGImage' does not name a type
In file included from qvgcompositionhelper_p.h:56,
                 from qpaintengine_vg.cpp:45:
qwindowsurface_vgegl_p.h:78: error: 'VGImage' does not name a type
qwindowsurface_vgegl_p.h:106: error: 'VGImage' does not name a type
qwindowsurface_vgegl_p.h:111: error: 'VGImage' does not name a type
In file included from qpaintengine_vg.cpp:45:
qvgcompositionhelper_p.h:74: error: 'VGImage' has not been declared
In file included from qpaintengine_vg.cpp:46:
qvgimagepool_p.h:85: error: 'VGImage' does not name a type
qvgimagepool_p.h:95: error: 'VGImage' does not name a type
qvgimagepool_p.h:112: error: 'VGImage' does not name a type
qvgimagepool_p.h:117: error: 'VGImage' has not been declared
qvgimagepool_p.h:134: error: 'VGImageFormat' has not been declared
qvgimagepool_p.h:135: error: 'VGint' has not been declared
qvgimagepool_p.h:135: error: 'VGint' has not been declared
qpaintengine_vg.cpp:142: error: 'VGMatrixMode' has not been declared
qpaintengine_vg.cpp:144: error: 'VGPath' has not been declared
qpaintengine_vg.cpp:144: error: 'VGint' has not been declared
qpaintengine_vg.cpp:145: error: 'VGPath' has not been declared
qpaintengine_vg.cpp:146: error: 'VGPath' has not been declared
qpaintengine_vg.cpp:146: error: 'VGint' has not been declared
qpaintengine_vg.cpp:147: error: 'VGPath' does not name a type
qpaintengine_vg.cpp:148: error: 'VGPath' does not name a type
qpaintengine_vg.cpp:149: error: 'VGPath' does not name a type
qpaintengine_vg.cpp:150: error: 'VGPaintType' does not name a type
qpaintengine_vg.cpp:154: error: 'VGMatrixMode' has not been declared
qpaintengine_vg.cpp:155: error: 'VGPaint' has not been declared
qpaintengine_vg.cpp:161: error: 'VGMaskOperation' has not been declared
qpaintengine_vg.cpp:163: error: 'VGMaskOperation' has not been declared
qpaintengine_vg.cpp:166: error: 'VGint' does not name a type
qpaintengine_vg.cpp:168: error: 'VGPaint' does not name a type
qpaintengine_vg.cpp:169: error: 'VGPaint' does not name a type
qpaintengine_vg.cpp:170: error: 'VGPaint' does not name a type
qpaintengine_vg.cpp:171: error: 'VGPaint' does not name a type
qpaintengine_vg.cpp:179: error: 'VGPaintType' does not name a type
qpaintengine_vg.cpp:180: error: 'VGPaintType' does not name a type
qpaintengine_vg.cpp:184: error: 'VGint' does not name a type
qpaintengine_vg.cpp:190: error: 'VGPath' does not name a type
qpaintengine_vg.cpp:191: error: 'VGPath' does not name a type
qpaintengine_vg.cpp:192: error: 'VGPath' does not name a type
qpaintengine_vg.cpp:213: error: 'VGMatrixMode' does not name a type
qpaintengine_vg.cpp:214: error: 'VGImageMode' does not name a type
qpaintengine_vg.cpp:223: error: 'VGfloat' does not name a type
qpaintengine_vg.cpp:225: error: 'VGBlendMode' does not name a type
qpaintengine_vg.cpp:226: error: 'VGRenderingQuality' does not name a type
qpaintengine_vg.cpp:227: error: 'VGImageQuality' does not name a type
qpaintengine_vg.cpp:282: error: 'VGImageMode' has not been declared
qpaintengine_vg.cpp:283: error: 'VGRenderingQuality' has not been declared
qpaintengine_vg.cpp:284: error: 'VGImageQuality' has not been declared
qpaintengine_vg.cpp:285: error: 'VGBlendMode' has not been declared
qpaintengine_vg.cpp:286: error: 'VGint' has not been declared
qpaintengine_vg.cpp:144: error: 'VG_EVEN_ODD' was not declared in this scope
qpaintengine_vg.cpp:146: error: 'VG_EVEN_ODD' was not declared in this scope
qpaintengine_vg.cpp: In member function 'void QVGPaintEnginePrivate::ensurePathTransform()':
qpaintengine_vg.cpp:247: error: 'renderingQuality' was not declared in this scope
qpaintengine_vg.cpp:247: error: 'VG_RENDERING_QUALITY_NONANTIALIASED' was not declared in this scope
qpaintengine_vg.cpp:250: error: 'VG_MATRIX_PATH_USER_TO_SURFACE' was not declared in this scope
qpaintengine_vg.cpp: In member function 'void QVGPaintEnginePrivate::ensurePen(const QPen&)':
qpaintengine_vg.cpp:260: error: 'penType' was not declared in this scope
qpaintengine_vg.cpp:261: error: 'penPaint' was not declared in this scope
qpaintengine_vg.cpp:262: error: 'VG_MATRIX_STROKE_PAINT_TO_USER' was not declared in this scope
qpaintengine_vg.cpp:262: error: 'setBrush' was not declared in this scope
qpaintengine_vg.cpp: In member function 'void QVGPaintEnginePrivate::ensureBrush(const QBrush&)':
qpaintengine_vg.cpp:272: error: 'brushType' was not declared in this scope
qpaintengine_vg.cpp:273: error: 'brushPaint' was not declared in this scope
qpaintengine_vg.cpp:273: error: 'VG_MATRIX_FILL_PAINT_TO_USER' was not declared in this scope
qpaintengine_vg.cpp:273: error: 'setBrush' was not declared in this scope
qpaintengine_vg.cpp:275: error: 'fillPaint' was not declared in this scope
qpaintengine_vg.cpp:275: error: 'brushPaint' was not declared in this scope
qpaintengine_vg.cpp:276: error: 'VG_FILL_PATH' was not declared in this scope
qpaintengine_vg.cpp:276: error: 'vgSetPaint' was not declared in this scope
qpaintengine_vg.cpp: At global scope:
qpaintengine_vg.cpp:295: error: variable or field 'setImageMode' declared void
qpaintengine_vg.cpp:295: error: 'VGImageMode' was not declared in this scope
make[1]: *** [.obj/release-shared-emb-arm/qpaintengine_vg.o] Error 1


$vim include/QtOpenVG/private/../../../src/openvg/qvg.h


$make 


//#incldue <VG/openvg.h>
#include "openvg.h"

past!
-------------------------------------------------------------------------------------------------------------
安装总结,openGL,openGV 最好自己交叉编译安装,然后环境变量必须设置好,否则会走很多弯路。
--------------------------------------------------------------------------------------------------------------

-I/home/linuxsir/arm-linux/arm-2009q1/lib/lib-arm/lib/openGlVg -o .obj/release-shared-emb-arm/sqlite3.o ../3rdparty/sqlite/sqlite3.c
../3rdparty/sqlite/sqlite3.c: In function 'void strftimeFunc(sqlite3_context*, int, sqlite3_value**)':
../3rdparty/sqlite/sqlite3.c:11907: error: invalid conversion from 'void*' to 'char*'
../3rdparty/sqlite/sqlite3.c: In function 'void sqlite3RegisterDateTimeFunctions()':
../3rdparty/sqlite/sqlite3.c:12101: warning: deprecated conversion from string constant to 'char*'
../3rdparty/sqlite/sqlite3.c:12101: warning: deprecated conversion from string constant to 'char*'
../3rdparty/sqlite/sqlite3.c:12101: warning: deprecated conversion from string constant to 'char*'
../3rdparty/sqlite/sqlite3.c:12101: warning: deprecated conversion from string constant to 'char*'
../3rdparty/sqlite/sqlite3.c:12101: warning: deprecated conversion from string constant to 'char*'
../3rdparty/sqlite/sqlite3.c:12101: warning: deprecated conversion from string constant to 'char*'
../3rdparty/sqlite/sqlite3.c:12101: warning: deprecated conversion from string constant to 'char*'
../3rdparty/sqlite/sqlite3.c:12101: warning: deprecated conversion from string constant to 'char*'
../3rdparty/sqlite/sqlite3.c: In function 'void* sqlite3MemMalloc(int)':
../3rdparty/sqlite/sqlite3.c:12610: error: invali
`
`
`
../3rdparty/sqlite/sqlite3.c:51160: error: invalid conversion from 'const void*' to 'const char*'
../3rdparty/sqlite/sqlite3.c:51160: error:   initializing argument 2 of 'int sqlite3VdbeMemSetStr(Mem*, const char*, int, u8, void (*)(void*))'
../3rdparty/sqlite/sqlite3.c: In function 'int sqlite3VdbeExec(Vdbe*)':
../3rdparty/sqlite/sqlite3.c:54504: error: invalid conversion from 'void*' to 'Savepoint*'
../3rdparty/sqlite/sqlite3.c:55649: warning: suggest a space before ';' or explicit braces around empty body in 'for' statement
../3rdparty/sqlite/sqlite3.c:56662: error: invalid conversion from 'void*' to 'int*'
../3rdparty/sqlite/sqlite3.c:56849: warning: suggest a space before ';' or explicit braces around empty body in 'for' statement
../3rdparty/sqlite/sqlite3.c:56873: error: invalid conversion from 'void*' to 'VdbeFrame*'
../3rdparty/sqlite/sqlite3.c:57002: warning: suggest a space before ';' or explicit braces around empty body in 'for' statement
../3rdparty/sqlite/sqlite3.c: In function 'int sqlite3_blob_open(sqlite3*, const char*, const char*, const char*, sqlite_int64, int, sqlite3_blob**)':
../3rdparty/sqlite/sqlite3.c:57879: error: invalid conversion from 'void*' to 'Parse*'
../3rdparty/sqlite/sqlite3.c:58012: error: invalid conversion from 'void*' to 'const char*'
../3rdparty/sqlite/sqlite3.c:58012: error:   initializing argument 3 of 'void sqlite3VdbeChangeP4(Vdbe*, int, const char*, int)'
`
`
`
../3rdparty/sqlite/sqlite3.c:81709: error: invalid use of incomplete type 'struct ExprList_item'
../3rdparty/sqlite/sqlite3.c:81690: error: forward declaration of 'struct ExprList_item'
../3rdparty/sqlite/sqlite3.c:81709: error: invalid use of incomplete type 'struct ExprList_item'
../3rdparty/sqlite/sqlite3.c:81690: error: forward declaration of 'struct ExprList_item'
../3rdparty/sqlite/sqlite3.c:81722: error: cannot convert 'SrcList::SrcList_item [1]' to 'SrcList_item*' in assignment
../3rdparty/sqlite/sqlite3.c:81722: error: cannot increment a pointer to incomplete type 'SrcList_item'
`
`
`
../3rdparty/sqlite/sqlite3.c:92650: error: expected unqualified-id before '!' token
../3rdparty/sqlite/sqlite3.c:92650: error: expected `)' before '!' token
../3rdparty/sqlite/sqlite3.c: At global scope:
../3rdparty/sqlite/sqlite3.c:94574: error: redefinition of 'char* sqlite3_temp_directory'
../3rdparty/sqlite/sqlite3.c:4333: error: 'char* sqlite3_temp_directory' previously declared here
../3rdparty/sqlite/sqlite3.c: In function 'int createCollation(sqlite3*, const char*, u8, u8, void*, int (*)(void*, int, const void*, int, const void*), void (*)(void*))':
../3rdparty/sqlite/sqlite3.c:95928: error: invalid conversion from 'void*' to 'CollSeq*'
../3rdparty/sqlite/sqlite3.c: In function 'int openDatabase(const char*, sqlite3**, unsigned int, const char*)':
../3rdparty/sqlite/sqlite3.c:96095: error: invalid conversion from 'void*' to 'sqlite3*'
../3rdparty/sqlite/sqlite3.c:96180: warning: deprecated conversion from string constant to 'char*'
../3rdparty/sqlite/sqlite3.c:96182: warning: deprecated conversion from string constant to 'char*'
../3rdparty/sqlite/sqlite3.c: In function 'int sqlite3_open16(const void*, sqlite3**)':
../3rdparty/sqlite/sqlite3.c:96310: error: invalid conversion from 'con






----------------------------------------------------------------------------------


$vim src/3rdparty/sqlite/sqlite3.c


struct SrcList {
  i16 nSrc;        /* Number of tables or subqueries in the FROM clause */
  i16 nAlloc;      /* Number of entries allocated in a[] below */
  struct SrcList_item {
    char *zDatabase;  /* Name of database holding this table */
    char *zName;      /* Name of the table */
    char *zAlias;     /* The "B" part of a "A AS B" phrase.  zName is the "A" */
    Table *pTab;      /* An SQL table corresponding to zName */
    Select *pSelect;  /* A SELECT statement used in place of a table name */
    u8 isPopulated;   /* Temporary table associated with SELECT is populated */
    u8 jointype;      /* Type of join between this able and the previous */
    u8 notIndexed;    /* True if there is a NOT INDEXED clause */
    int iCursor;      /* The VDBE cursor number used to access this table */
    Expr *pOn;        /* The ON clause of a join */
    IdList *pUsing;   /* The USING clause of a join */
    Bitmask colUsed;  /* Bit N (1<<N) set if column N of pTab is used */
    char *zIndex;     /* Identifier from "INDEXED BY <zIndex>" clause */
    Index *pIndex;    /* Index structure corresponding to zIndex, if any */
  } a[1];             /* One entry for each identifier on the list */
};


SQLITE_PRIVATE int sqlite3IndexedByLookup(Parse *, struct SrcList_item *);


SrcList *pSrc = va_arg(ap, SrcList*);
int k = va_arg(ap, int);
struct SrcList_item *pItem = (struct SrcList_item *)&pSrc->a[k];


to


  9300 struct ExprList_item {
  9301   Expr *pExpr;           /* The list of expressions */
  9302   char *zName;           /* Token associated with this expression */
  9303   char *zSpan;           /* Original text of the expression */
  9304   u8 sortOrder;          /* 1 for DESC or 0 for ASC */
  9305   u8 done;               /* A flag to indicate when processing is finished */
  9306   u16 iCol;              /* For ORDER BY, column number in result set */
  9307   u16 iAlias;            /* Index into Parse.aAlias[] for zName */
  9308 } *a;                  /* One entry for each expression */
  9309 
  9310 struct ExprList {
  9311   int nExpr;             /* Number of expressions on the list */
  9312   int nAlloc;            /* Number of entries allocated below */
  9313   int iECursor;          /* VDBE Cursor associated with this ExprList */
  9314   ExprList_item *a;                  /* One entry for each expression */
  9315 };

  6355  struct _ht {              /* the hash table */
  6356    int count;                 /* Number of entries with this hash */
  6357    HashElem *chain;           /* Pointer to first entry with this hash */
  6358  } *ht;
  6359 
  6360 struct Hash {
  6361   unsigned int htsize;      /* Number of buckets in the hash table */
  6362   unsigned int count;       /* Number of entries in this table */
  6363   HashElem *first;          /* The first element of the array */
  6364   _ht *ht;
  6365 };
----------------------------------------------------------------------------------


 36961 struct MemPage {
 36962   u8 isInit;           /* True if previously initialized. MUST BE FIRST! */
 36963   u8 nOverflow;        /* Number of overflow cell bodies in aCell[] */
 36964   u8 intKey;           /* True if intkey flag is set */
 36965   u8 leaf;             /* True if leaf flag is set */
 36966   u8 hasData;          /* True if this page stores data */
 36967   u8 hdrOffset;        /* 100 for page 1.  0 otherwise */
 36968   u8 childPtrSize;     /* 0 if leaf==1.  4 if leaf==0 */
 36969   u16 maxLocal;        /* Copy of BtShared.maxLocal or BtShared.maxLeaf */
 36970   u16 minLocal;        /* Copy of BtShared.minLocal or BtShared.minLeaf */
 36971   u16 cellOffset;      /* Index in aData of first cell pointer */
 36972   u16 nFree;           /* Number of free bytes on the page */
 36973   u16 nCell;           /* Number of cells on this page, local and ovfl */
 36974   u16 maskPage;        /* Mask for page offset */
 36975   struct _OvflCell {   /* Cells that will not fit on aData[] */
 36976     u8 *pCell;          /* Pointers to the body of the overflow cell */
 36977     u16 idx;            /* Insert this cell before idx-th non-overflow cell */
 36978   } aOvfl[5];
 36979   BtShared *pBt;       /* Pointer to BtShared that this page is part of */
 36980   u8 *aData;           /* Pointer to disk image of the page data */
 36981   DbPage *pDbPage;     /* Pager page handle */
 36982   Pgno pgno;           /* Page number for this page */
 36983 };

to
"
 36975   struct _OvflCell {   /* Cells that will not fit on aData[] */
 36976     u8 *pCell;          /* Pointers to the body of the overflow cell */
 36977     u16 idx;            /* Insert this cell before idx-th non-overflow cell */
 36978   } aOvfl[5];

 36961 struct MemPage {
 36962   u8 isInit;           /* True if previously initialized. MUST BE FIRST! */
 36963   u8 nOverflow;        /* Number of overflow cell bodies in aCell[] */
 36964   u8 intKey;           /* True if intkey flag is set */
 36965   u8 leaf;             /* True if leaf flag is set */
 36966   u8 hasData;          /* True if this page stores data */
 36967   u8 hdrOffset;        /* 100 for page 1.  0 otherwise */
 36968   u8 childPtrSize;     /* 0 if leaf==1.  4 if leaf==0 */
 36969   u16 maxLocal;        /* Copy of BtShared.maxLocal or BtShared.maxLeaf */
 36970   u16 minLocal;        /* Copy of BtShared.minLocal or BtShared.minLeaf */
 36971   u16 cellOffset;      /* Index in aData of first cell pointer */
 36972   u16 nFree;           /* Number of free bytes on the page */
 OvflCell aOvfl[5];
 36979   BtShared *pBt;       /* Pointer to BtShared that this page is part of */
 36980   u8 *aData;           /* Pointer to disk image of the page data */
 36981   DbPage *pDbPage;     /* Pager page handle */
 36982   Pgno pgno;           /* Page number for this page */
 36983 };

----------------------------------------------------------------------------------

struct VdbeFunc {
  FuncDef *pFunc;               /* The definition of the function */
  int nAux;                     /* Number of entries allocated for apAux[] */
  struct AuxData {
    void *pAux;                   /* Aux data for the i-th argument */
    void (*xDelete)(void *);      /* Destructor for the aux data */
  } apAux[1];                   /* One slot for each function argument */
};

to 

  struct AuxData {
    void *pAux;                   /* Aux data for the i-th argument */
    void (*xDelete)(void *);      /* Destructor for the aux data */
  } apAux[1];


struct VdbeFunc {
  FuncDef *pFunc;               /* The definition of the function */
  int nAux;                     /* Number of entries allocated for apAux[] */
  AuxData apAux[1];                   /* One slot for each function argument */
};

----------------------------------------------------------------------------------

struct IdList_item {
  char *zName;      /* Name of the identifier */
  int idx;          /* Index in some Table.aCol[] of a column named zName */
} *a;


struct IdList {
  IdList_item *a;
  int nId;         /* Number of identifiers on the list */
  int nAlloc;      /* Number of entries allocated for a[] below */
};

struct yColCache {
  int iTable;           /* Table cursor number */
  int iColumn;          /* Table column number */
  u8 affChange;         /* True if this register has had an affinity change */
  u8 tempReg;           /* iReg is a temp register that needs to be freed */
  int iLevel;           /* Nesting level */
  int iReg;             /* Reg with value of this column. 0 means none. */
  int lru;              /* Least recently used entry has the smallest value */
} aColCache[SQLITE_N_COLCACHE];  /* One for each column cache entry */




struct AggInfo_col {    /* For each column used in source tables */
  Table *pTab;             /* Source table */
  int iTable;              /* Cursor number of the source table */
  int iColumn;             /* Column number within the source table */
  int iSorterColumn;       /* Column number in the sorting index */
  int iMem;                /* Memory location that acts as accumulator */
  Expr *pExpr;             /* The original expression */
} *aCol;

----------------------------------------------------------------------------------
struct WhereLevel {
  WherePlan plan;       /* query plan for this element of the FROM clause */
  int iLeftJoin;        /* Memory cell used to implement LEFT OUTER JOIN */
  int iTabCur;          /* The VDBE cursor used to access the table */
  int iIdxCur;          /* The VDBE cursor used to access pIdx */
  int addrBrk;          /* Jump here to break out of the loop */
  int addrNxt;          /* Jump here to start the next IN combination */
  int addrCont;         /* Jump here to continue with the next loop cycle */
  int addrFirst;        /* First instruction of interior of the loop */
  u8 iFrom;             /* Which entry in the FROM clause */
  u8 op, p5;            /* Opcode and P5 of the opcode that ends the loop */
  int p1, p2;           /* Operands of the opcode used to ends the loop */
  union {               /* Information that depends on plan.wsFlags */
    struct {
      int nIn;              /* Number of entries in aInLoop[] */
      struct InLoop {
        int iCur;              /* The VDBE cursor used by this IN operator */
        int addrInTop;         /* Top of the IN loop */
      } *aInLoop;           /* Information about each nested IN operator */
    } in;                 /* Used when plan.wsFlags&WHERE_IN_ABLE */
  } u;


  /* The following field is really not part of the current level.  But
  ** we need a place to cache virtual table index information for each
  ** virtual table in the FROM clause and the WhereLevel structure is
  ** a convenient place since there is one WhereLevel for each FROM clause
  ** element.
  */
  sqlite3_index_info *pIdxInfo;  /* Index info for n-th source table */
};

to
'
struct InLoop {
  int iCur;              /* The VDBE cursor used by this IN operator */
  int addrInTop;         /* Top of the IN loop */
} *aInLoop;           /* Information about each nested IN operator */

struct WhereLevel {
  WherePlan plan;       /* query plan for this element of the FROM clause */
  int iLeftJoin;        /* Memory cell used to implement LEFT OUTER JOIN */
  int iTabCur;          /* The VDBE cursor used to access the table */
  int iIdxCur;          /* The VDBE cursor used to access pIdx */
  int addrBrk;          /* Jump here to break out of the loop */
  int addrNxt;          /* Jump here to start the next IN combination */
  int addrCont;         /* Jump here to continue with the next loop cycle */
  int addrFirst;        /* First instruction of interior of the loop */
  u8 iFrom;             /* Which entry in the FROM clause */
  u8 op, p5;            /* Opcode and P5 of the opcode that ends the loop */
  int p1, p2;           /* Operands of the opcode used to ends the loop */
  union {               /* Information that depends on plan.wsFlags */
    struct {
      int nIn;              /* Number of entries in aInLoop[] */
      InLoop *aInLoop;           /* Information about each nested IN operator */
    } in;                 /* Used when plan.wsFlags&WHERE_IN_ABLE */
  } u;


  /* The following field is really not part of the current level.  But
  ** we need a place to cache virtual table index information for each
  ** virtual table in the FROM clause and the WhereLevel structure is
  ** a convenient place since there is one WhereLevel for each FROM clause
  ** element.
  */
  sqlite3_index_info *pIdxInfo;  /* Index info for n-th source table */
};

90017 struct LikeOp {
 90018   Token eOperator;  /* "like" or "glob" or "regexp" */
 90019   int nott; //amended
 90020 };

 76216       int nByte = (wsdAutoext.nExt+1)*sizeof(wsdAutoext.aExt[0]);
 76217       void (**aNew)(void);
 76218       aNew = (void (**)())sqlite3_realloc(wsdAutoext.aExt, nByte);
 76219       if( aNew==0 ){

$make 

past!
Qt是一种广泛使用的跨平台应用程序框架。本文将介绍如何在Ubuntu 18.04上交叉编译Qt 5.12.7的详细教程。 第一步是安装必要的依赖项。打开终端并输入以下命令: sudo apt-get update sudo apt-get install build-essential perl python git p7zip-full 接下来,你需要安装交叉编译工具链。在此示例中,我们将以ARM Cortex-A7为目标平台。 sudo apt-get install g++-arm-linux-gnueabihf libc6-armhf-cross-armel-cross binutils-arm-linux-gnueabihf 然后,创建一个新的目录并切换到该目录中,然后从Qt官方网站上下载最新的Qt源代码: mkdir qt-cross-compile && cd qt-cross-compile wget https://download.qt.io/archive/qt/5.12/5.12.7/single/qt-everywhere-src-5.12.7.tar.xz tar xvf qt-everywhere-src-5.12.7.tar.xz 接下来,创建一个称为“qt5-armhf.conf”的新文件,需要根据目标平台进行相应的更改: cd qt-everywhere-src-5.12.7/qtbase/mkspecs cp -r linux-arm-gnueabi-g++/ qt5-armhf cd qt5-armhf vi qmake.conf 确保以下行已正确配置: 将“QMAKE_CFLAGS”和“QMAKE_CXXFLAGS”修改为: QMAKE_CFLAGS = -march=armv7-a -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard --sysroot=/usr/arm-linux-gnueabihf/ QMAKE_CXXFLAGS = $$QMAKE_CFLAGS 对于“QMAKE_LINK”和“QMAKE_LINK_SHLIB”,添加以下行: QMAKE_LINK = arm-linux-gnueabihf-g++ QMAKE_LINK_SHLIB = $$QMAKE_LINK 接下来,进入Qt源代码目录并构建一个交叉编译版本: cd ../../.. ./configure -prefix /opt/qt5-armhf -static -opensource -confirm-license -release -skip webengine -skip wayland -skip qtgamepad make -j4 接下来,安装Qt到目标目录: sudo make install 完成后,你可以在目标文件夹/opt/qt5-armhf找到已安装的Qt库。现在你可以使用Qt Creator或手动创建项目并在Ubuntu 18.04中进行交叉编译
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值