Record the Mesa configuration file as follows:
Mesa version: Mesa-10.2.3
[HTML]View Plaincopy
- CC=/USR/LOCAL/ARM-4.8.1/BIN/ARM-NONE-LINUX-GNUEABI-GCC cxx=/usr/local/arm-4.8.1/bin/ arm-none-linux-gnueabi-g++./configure --prefix=/home/work/download/mesa --target=arm-linux --host =arm-linux--enable-gles2--enable-gles1--disable-glx--enable-egl--disable-dri--enable-shared-glapi -- with-egl-platforms=fbdev --with-dri-drivers=swrast
- Or
- Unset Pkg_config_path
- Export Pkg_config_path=/home/work/download/presen/lib/pkgconfig:/home/work/download/libdrm/lib/pkgconfig
- cc=/usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-gcccxx=/usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-g++./configure--target=arm-linux --host=< Span class= "Attribute-value" >arm-linux --prefix=/home/work/download/mesa-10.0 --enable-gl --enable-gles2 --enable-gles1 --enable-opengl --enable-shared-glapi --disable-dri --enable-shared-dricore --enable-gles1 --enable-opengl -- Enable-gallium-egl --with-egl-platforms=fbdev --with-gallium-drivers=swrast --with-dri-drivers=swrast Cflags= "-i/home/work/download/libudev/include -l/home/work/download/libudev /lib/arm-linux-gnueabi "&NBSP;&NBSP;
- Make &&make Install
QT configuration:
[HTML]View Plaincopy
- ./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 -qreal float -no-glib -strip -xinput2 - linuxfb -plugindir /usr/local/qt-5.2.1-embedded-arm-quick/plugin -qmldir /usr/local/ qt-5.2.1-embedded-arm-quick/qml -importdir /usr/local/qt-5.2.1-embedded-arm-quick/imports -L/home/work/DownLoad/Mesa/lib -I/home/work/DownLoad/Mesa/include -confirm-license "[ Email protected] " -verbose
- Make && make install
- qmake.conf need to join : Qmake_libs_opengl_es2 =-lglapi-lglesv2-legl
- This is because libglesv2.so relies on libglapi.so, and you can use ARM-NONE-LINUX-GNUEABI-LD to view the dependencies of the relational library. Mesa Cross-Compile if there is no--ENABLE-SHARED-GLAPI, the following error will be reported:
- libGLESv2.so:undefined reference to ' _glapi_get_dispatch '
- libGLESv2.so:undefined reference to ' _glapi_dispatch '
Xlib All source code:
[HTML]View Plaincopy
- http://cgit.freedesktop.org/xorg/
http://cgit.freedesktop.org/xorg/
Ubuntu command line bulk Download: Wget-r-np-nd ftp://mirrors.go-part.com/xorg/X11R7.7/
The configuration of the logging libx11-1.3.2 is as follows:
[HTML]View Plaincopy
- echo enable_malloc0returnsnull=Yes>arm-linux.cache
This sentence is to ensure that you can cross-compile, or cross-compile when the test is not too, will report the following error:
Checking whether malloc (0) returns NULL ... configure:error:in '/home/work/download/libx11-1.3.2 ':
Configure:error:cannot Run test program while the cross compiling
This is because Xlib is forbidden to cross-compile when using--host=arm-linux. Workaround for the sentence from Congfirue to find the error, look at the script with +set, for example in this case:
[HTML]View Plaincopy
- Vim Configure
- Find checking whether malloc (0) returns Null ... This sentence, get the following information
- # Check whether--enable-malloc0returnsnull was given.
- if test "${enable_malloc0returnsnull+set}" = set; Then
- enableval= $enable _malloc0returnsnull; malloc_zero_returns_null= $enableval
- Else
- malloc_zero_returns_null=Auto
- Fi
- {$as _echo "$as _me: $LINENO: Checking whether malloc (0) returns NULL" >&5
- $as _echo_n "<span style=" color: #FF0000; " >checking whether malloc (0) returns NULL ... " >&6;}
- if test "x$malloc_zero_returns_null" = Xauto; Then
- if test "$cross _compiling" = yes; Then
- {{$as _echo $as _me: $LINENO: error:in \ ' $ac _pwd ': " >&5
- $as _echo "$as _me:error:in \ ' $ac _pwd ':" >&2;}
- {{$as _echo $as _me: $LINENO: Error:cannot Run test program, while cross compiling
- See \ ' Config.log ' for more details. " >&5
- $as _echo "$as _me:error:cannot Run test program while the cross compiling
- See \ ' Config.log ' for more details. " >&2;}
Because he is in the if test "${enable_malloc0returnsnull+set}" = set;
- Make clean && make Distclean
- RM-RF Arm-linux.cache
- echo enable_malloc0returnsnull=Yes>arm-linux.cache
- cc=/usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-gcccxx=/usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-g++ ./configure --prefix=/home/work/download/libx11/ --disable-xf86bigfont --host=arm-linux --target=< Span class= "Attribute-value" >arm-linux cflags= "-i/home/work/download/libx11/include -i/home/work/download/libx11/libxcb/include -l/home/work/ Download/libx11/lib -l/home/work/download/libx11/libxcb/lib " --includedir=/ Home/work/download/libx11/include xproto_libs=/home/work/download/libx11/lib --cache-file=ARM-LINUX.CACHE&NBSP;&NBSP;
- Make && make install
[HTML]View Plaincopy
- cflags="-i/home/work/download/libx11/include-l/home/work/download/libx11/lib", this sentence formulates the path of Xporto, Because of the need to use the x.h in Xproto
Cross-compiling X11 requires cross-compiling Xproto (version xproto-7.0.17):
Xporto:
[HTML]View Plaincopy
- http://cgit.freedesktop.org/xorg/proto/xproto/
- Configxproto.sh as follows:
[HTML]View Plaincopy
- CC=/USR/LOCAL/ARM-4.8.1/BIN/ARM-NONE-LINUX-GNUEABI-GCC cxx=/usr/local/arm-4.8.1/bin/ arm-none-linux-gnueabi-g++./configure --prefix=/home/work/download/libx11/ --host=arm-linux -- target=arm-linux
- Make && make install
Due to the need to use Xtrans.h, it is necessary to download Xtrans, as:
[HTML]View Plaincopy
- http://www.x.org/releases/X11R7.5/src/lib/
The version I have selected is: xtrans-1.2.5
Cross-compiling and similar above
[HTML]View Plaincopy
- CC=/USR/LOCAL/ARM-4.8.1/BIN/ARM-NONE-LINUX-GNUEABI-GCC cxx=/usr/local/arm-4.8.1/bin/ arm-none-linux-gnueabi-g++./configure --prefix=/home/work/download/libx11/ --host=arm-linux -- target=arm-linux --cache-file=arm-linux.cache
- Make && make install
Because of the error xkb.c:36:37:fatal error:x11/extensions/xkbproto.h:no such file or directory, you need to use kbproto-1.0.6
kbproto-1.0.6:
[HTML]View Plaincopy
- http://cgit.freedesktop.org/xorg/proto/kbproto/
kbproto-1.0.6 cross-compiling is similar to the above:
[HTML]View Plaincopy
- Make clean && make Distclean
- RM-RF Configure
- ./autogen.sh
- CC=/USR/LOCAL/ARM-4.8.1/BIN/ARM-NONE-LINUX-GNUEABI-GCC cxx=/usr/local/arm-4.8.1/bin/ arm-none-linux-gnueabi-g++./configure --prefix=/home/work/download/libx11/kbproto --host=arm-linux --target=arm-linux
- Make && make install
Need XI.h, need to download inputproto-2.1.99.6, for:
[HTML]View Plaincopy
- http://cgit.freedesktop.org/xorg/proto/inputproto/
iputProto-2.1.99.6 cross-compiling and similar above
[HTML]View Plaincopy
- Make clean && make Distclean
- RM-RF Configure
- ./autogen.sh
- CC=/USR/LOCAL/ARM-4.8.1/BIN/ARM-NONE-LINUX-GNUEABI-GCC cxx=/usr/local/arm-4.8.1/bin/ arm-none-linux-gnueabi-g++./configure --prefix=/home/work/download/libx11/inputporto/ --host= Arm-linux --target=arm-linux
Error:.. /include/x11/xlib-xcb.h:7:21:fatal error:xcb/xcb.h:no such file or directory
Need to download LIBXCB,
[HTML]View Plaincopy
- http://xcb.freedesktop.org/dist/
libxcb-1.8.1 cross-compile as follows:
[HTML]View Plaincopy
- Export pkg_config_path=/home/work/download/libx11/xcbproto/lib/pkgconfig
- Make clean && make Distclean
- RM-RF Arm-linux.cache
- echo ac_cv_path_xsltproc=/home/work/download/libx11/libxslt/bin > Arm-linux.cache
- CC=/USR/LOCAL/ARM-4.8.1/BIN/ARM-NONE-LINUX-GNUEABI-GCC cxx=/usr/local/arm-4.8.1/bin/ arm-none-linux-gnueabi-g++./configure --prefix=/home/work/download/libx11/libxcb/ CFLAGS="-I/home/ work/download/libx11/libxslt/include-i/home/work/download/libx11/libxau/include-i/home/work/download/libx11/ Include-l/home/work/download/libx11/libxslt/lib-l/home/work/download/libx11/libxau/lib " --host= Arm-linux --target=arm-linux --cache-file=arm-linux.cache
- Error message: Configure:error:XCB requires Xsltproc
Download Xsltproc,:
[HTML]View Plaincopy
- https://git.gnome.org/browse/libxslt/
- <pre name= "code" class= "html" span class= "tag" >>cc=/usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-gcc cxx=/usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-g++ ./configure --with-libxml-libs-prefix=/home/work/download/libx11/libxml2/lib --with-libxml-include-prefix=/home/work/download/libx11/include/libxml2/libxml/ < span class= "attribute" >--prefix=/home/work/download/libx11/libxslt/ --host=arm-linux --target= arm-linux
If you have cross-compiled and you have specified the path to LIBXML2, but you still cannot find the LIBXML2, you can manually indicate the path to the XML in Congfigure
libxml_config_prefix= "/HOME/WORK/DOWNLOAD/LIBX11/LIBXML2"
Xsltproc need to download libxml,:
[HTML]View Plaincopy
- ftp://xmlsoft.org/libxml2/
- Cross-compiling and similar above
- XCB needs xcb-proto,:http://xcb.freedesktop.org/dist/.
- xcb-proto-1.7 cross-compile as follows:
- CC=/USR/LOCAL/ARM-4.8.1/BIN/ARM-NONE-LINUX-GNUEABI-GCC cxx=/usr/local/arm-4.8.1/bin/ arm-none-linux-gnueabi-g++./configure --prefix=/home/work/download/libx11/xcbproto/ --host=arm-linux --target=arm-linux
- Make && make install
- XCB needs libxau,:http://cgit.freedesktop.org/xorg/lib/libxau/.
- libXau-1.0.7 Cross-compiling:
- Make clean && make Distclean
- RM-RF Configure
- ./autogen.sh
- CC=/USR/LOCAL/ARM-4.8.1/BIN/ARM-NONE-LINUX-GNUEABI-GCC cxx=/usr/local/arm-4.8.1/bin/ arm-none-linux-gnueabi-g++./configure --prefix=/home/work/download/libx11/libxau/ --host=arm-linux --target=arm-linux cflags="-i/home/work/download/libx11/include"
- Make && make instal
Appendix once the successful cross-compilation of Lib library, for later download use:
http://download.csdn.net/detail/mkndg/7738667
Cross-compiling MESA,X11LIB,QT OpenGL