这篇记录是由于csdn的文章长度好像有限制。
对交叉编译Mesa,X11lib,Qt opengl的补充,由于zh5301这位同行在讨论这个交叉编译,他交叉编译qt的时候带有xcb,那么我将我的交叉编译所有的库所需的文件全部发上来,由于我交叉编译的时候考虑到要用opengl、xcb、xserver等,故而我一次性交叉编译了以下的库,方便配置qt的时候根据需要选择,附下:
.
├── app
│ ├── bdftopcf-1.0.3
│ ├── iceauth-1.0.5
│ ├── luit-1.1.1
│ ├── mkfontdir-1.0.7
│ ├── mkfontscale-1.1.0
│ ├── sessreg-1.0.7
│ ├── setxkbmap-1.3.0
│ ├── smproxy-1.0.5
│ ├── x11perf-1.5.4
│ ├── xauth-1.0.7
│ ├── xbacklight-1.1.2
│ ├── xcmsdb-1.0.4
│ ├── xcursorgen-1.0.5
│ ├── xdpyinfo-1.3.0
│ ├── xdriinfo-1.0.4
│ ├── xev-1.2.0
│ ├── xgamma-1.0.5
│ ├── xhost-1.0.5
│ ├── xinput-1.6.0
│ ├── xkbcomp-1.2.4
│ ├── xkbevd-1.1.3
│ ├── xkbutils-1.0.3
│ ├── xkill-1.0.3
│ ├── xlsatoms-1.1.1
│ ├── xlsclients-1.1.2
│ ├── xmodmap-1.0.7
│ ├── xpr-1.0.4
│ ├── xprop-1.2.1
│ ├── xrandr-1.3.5
│ ├── xrdb-1.0.9
│ ├── xrefresh-1.0.4
│ ├── xset-1.2.2
│ ├── xsetroot-1.1.0
│ ├── xvinfo-1.1.1
│ ├── xwd-1.0.5
│ ├── xwininfo-1.1.2
│ └── xwud-1.0.4
├── data
│ ├── xbitmaps-1.1.1
│ ├── xcursor-themes-1.0.3
│ └── xkeyboard-config-2.6
│ ├── xorg-docs-1.7
│ └── xorg-sgml-doctools-1.11
├── driver
│ ├── xf86-input-evdev-2.7.0
│ ├── xf86-input-joystick-1.6.1
│ ├── xf86-input-keyboard-1.6.1
│ ├── xf86-input-mouse-1.7.2
│ ├── xf86-input-synaptics-1.6.1
│ ├── xf86-input-vmmouse-12.8.0
│ ├── xf86-input-void-1.4.0
│ ├── xf86-video-ark-0.7.4
│ ├── xf86-video-ast-0.93.10
│ ├── xf86-video-ati-6.14.4
│ ├── xf86-video-cirrus-1.4.0
│ ├── xf86-video-dummy-0.3.5
│ ├── xf86-video-fbdev-0.4.2
│ ├── xf86-video-geode-2.11.13
│ ├── xf86-video-glide-1.2.0
│ ├── xf86-video-glint-1.2.7
│ ├── xf86-video-i128-1.3.5
│ ├── xf86-video-intel-2.19.0
│ ├── xf86-video-mga-1.5.0
│ ├── xf86-video-neomagic-1.2.6
│ ├── xf86-video-newport-0.2.4
│ ├── xf86-video-nv-2.1.18
│ ├── xf86-video-openchrome-0.2.906
│ ├── xf86-video-r128-6.8.2
│ ├── xf86-video-savage-2.3.4
│ ├── xf86-video-siliconmotion-1.7.6
│ ├── xf86-video-sis-0.10.4
│ ├── xf86-video-suncg6-1.1.1
│ ├── xf86-video-sunffb-1.2.1
│ ├── xf86-video-tdfx-1.4.4
│ ├── xf86-video-tga-1.2.1
│ ├── xf86-video-trident-1.3.5
│ ├── xf86-video-v4l-0.2.0
│ ├── xf86-video-vesa-2.3.1
│ ├── xf86-video-vmware-12.0.2
│ ├── xf86-video-voodoo-1.2.4
│ └── xf86-video-wsfb-0.4.0
├── everything
├── font
│ ├── encodings-1.0.4
│ ├── font-adobe-100dpi-1.0.3
│ ├── font-adobe-75dpi-1.0.3
│ ├── font-alias-1.0.3
│ ├── font-arabic-misc-1.0.3
│ ├── font-util-1.3.0
│ ├── font-winitzki-cyrillic-1.0.3
│ ├── font-xfree86-type1-1.0.4
├── lib
│ ├── libdmx-1.1.2
│ ├── libfontenc-1.1.1
│ ├── libFS-1.0.4
│ ├── libICE-1.0.8
│ ├── libpciaccess-0.13.1
│ ├── libSM-1.2.1
│ ├── libWindowsWM-1.0.1
│ ├── libX11-1.5.0
│ ├── libXau-1.0.7
│ ├── libXaw-1.0.11
│ ├── libXcomposite-0.4.3
│ ├── libXcursor-1.1.13
│ ├── libXdamage-1.1.3
│ ├── libXdmcp-1.1.1
│ ├── libXext-1.3.1
│ ├── libXfixes-5.0
│ ├── libXfont-1.4.5
│ ├── libXft-2.3.1
│ ├── libXi-1.6.1
│ ├── libXinerama-1.1.2
│ ├── libxkbfile-1.0.8
│ ├── libXmu-1.1.1
│ ├── libXpm-3.5.10
│ ├── libXrandr-1.3.2
│ ├── libXrender-0.9.7
│ ├── libXres-1.0.6
│ ├── libXScrnSaver-1.2.2
│ ├── libXt-1.1.3
│ ├── libXtst-1.2.1
│ ├── libXv-1.0.7
│ ├── libXvMC-1.0.7
│ ├── libXxf86dga-1.1.3
│ ├── libXxf86vm-1.1.2
│ └── xtrans-1.2.7
├── proto
│ ├── bigreqsproto-1.1.2
│ │
│ ├── compositeproto-0.4.2
│ ├── damageproto-1.2.1
│ ├── dmxproto-2.3.1
│ ├── dri2proto-2.6
│ ├── dri3proto-1.0
│ ├── fixesproto-5.0
│ ├── fontsproto-2.1.2
│ │
│ ├── glproto-1.4.15
│ ├── inputproto-2.2
│ │
│ ├── kbproto-1.0.6
│ │
│ ├── presentproto-1.0
│ ├── randrproto-1.3.2
│ ├── recordproto-1.14.2
│ │
│ ├── renderproto-0.11.1
│ ├── resourceproto-1.2.0
│ ├── scrnsaverproto-1.2.2
│ ├── videoproto-2.3.1
│ ├── windowswmproto-1.0.4
│ ├── xcmiscproto-1.2.2
│ │
│ ├── xextproto-7.2.1
│ │
│ ├── xf86bigfontproto-1.2.0
│ ├── xf86dgaproto-2.1
│ ├── xf86driproto-2.1.1
│ ├── xf86vidmodeproto-2.3.1
│ ├── xineramaproto-1.2.1
│ └── xproto-7.0.23
├── util
│ ├── makedepend-1.0.4
│ └── util-macros-1.17
├── xcb
│ ├── libpthread-stubs-0.3
│ ├── libxcb-1.9.1
│ ├── libxml2-2.9.1
│ ├── libxslt-1.1.28
│ ├── Python-2.7
│ ├── xcb-proto-1.10
│ └── xcb-util_0.2.1+git1.orig
└── xserver
├── attr-2.4.47
├── expat-2.1.0
├── freetype-2.5.3
├── glib-2.30.0
├── libcap-2.24
├── libdrm-2.4.50
├── libffi-3.0.9rc6
├── libgcrypt-1.5.0-beta1
├── libgpg-error-1.12
├── libpng-1.6.12
├── libxcb-1.10
├── libxshmfence-1.1
├── mesa-10.2.3
├── openssl-0.9.8g
├── pixman-0.32.4
├── systemd-210
├── xf86bigfontproto-1.2.0
├── xf86driproto-2.1.1
├── xorg-server-1.12.2
└── zlib-1.2.8
qmake.conf可以这么写:
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
QMAKE_INCDIR_OPENGL_ES2 = /home/work/DownLoad_old/Mesa-cross/include
QMAKE_LIBDIR_OPENGL_ES2 = /home/work/DownLoad_old/Mesa-cross/lib
#QMAKE_LIBS_OPENGL_ES2 = -ldrm -lglapi -lGLESv2 -lEGL<pre name="code" class="javascript">QMAKE_LIBS_OPENGL_ES2 = -lglapi -lGLESv2 -lEGL
QMAKE_LIBS = -lXau -lxcb -lX11 -lxcb-shm -lxcb-aux -lxcb-atom -lxcb-property -lXrender -lxcb-event -lxcb-render-util -lxcb-render -lxcb-icccm -lxcb-util -lXi -lXext -lxcb-icccmQMAKE_INCDIR = /home/work/DownLoad_old/Mesa-cross/include# modifications to g++.conf#QMAKE_CC = arm-linux-gnueabi-gcc#QMAKE_CXX = arm-linux-gnueabi-g++#QMAKE_LINK = arm-linux-gnueabi-g++#QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++QMAKE_CC = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-gccQMAKE_CXX = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-g++QMAKE_LINK = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-g++QMAKE_LINK_SHLIB = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-g++# modifications to linux.conf#QMAKE_AR = arm-linux-gnueabi-ar cqs#QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy#QMAKE_NM = arm-linux-gnueabi-nm -P#QMAKE_STRIP = arm-linux-gnueabi-stripQMAKE_AR = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-ar cqsQMAKE_OBJCOPY = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-objcopyQMAKE_NM = /usr/local/arm-4.8.1/bin/arm-linux-gnueabi-nm -PQMAKE_STRIP = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-stripload(qt_config)
configure可以根据自己的需求自己调整,我的configure是这么写的:
./configure -prefix /usr/local/qt-5.2.1-embedded-arm-quick -release -opensource -qt-libpng -qt-libjpeg -plugin-sql-sqlite -widgets -qt-sql-sqlite -make libs -no-cups -no-nis -no-iconv -no-dbus -no-openssl -no-iconv -no-accessibility -no-javascript-jit -no-sse2 -silent -xplatform linux-arm-gnueabi-g++ -nomake tools -nomake examples -nomake tests -qt-freetype -opengl es2 -no-glib -xcb-xlib -xcb -xinput2 -linuxfb -eglfs -strip -plugindir /usr/local/qt-5.2.1-embedded-arm-quick/plugin -I/home/work/DownLoad_old/Mesa-cross/include -L/home/work/DownLoad_old/Mesa-cross/lib -qmldir /usr/local/qt-5.2.1-embedded-arm-quick/qml -importdir /usr/local/qt-5.2.1-embedded-arm-quick/imports -confirm-license "$@" -verbose