installing QT4.7.4 for embedded Linux. Multiple errors
I'm an absolute beginner with Linux and developing for embedded Linux. I'm trying to install QT for embedded Linux onto my Fedora 15 laptop to target an i.Mx233.
Firstly, within the qt-everywhere-opensource-src-4.7.4 folder, I enter the command:
./configure -v -embedded arm -xplatform qws/linux-arm-imx -phonon -force-pkg-config
With the linux-arm-imx qmake conf file:
#
# qmake configuration for building with arm-none-linux-gnueabi-g++
#
include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)
# modifications to g++.conf
QMAKE_CC = /opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc-4.1.2
QMAKE_CXX = /opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK = /opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = /opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = /opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-ar
QMAKE_OBJCOPY = /opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-objcopy
QMAKE_STRIP = /opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-strip
load(qt_config)
The config gives the following output (sorry for length but I've no idea where to pinpoint the error):
[david@localhost qt-everywhere-opensource-src-4.7.4]$ PKG_CONFIG_PATH=/opt/freescale/pkgs ./configure --prefix=/opt/freescale/pkgs -v -embedded arm -xplatform qws/linux-arm-imx -phonon -force-pkg-config
Which edition of Qt do you want to use ?
Type 'c' if you want to use the Commercial Edition开发者_运维问答.
Type 'o' if you want to use the Open Source Edition.
o
Determining system architecture... (Linux:2.6.40.4-5.fc15.i686:i686)
32-bit Intel 80x86 (i386)
'arm' is supported
'i386' is supported
System architecture: 'arm'
Host architecture: 'i386'
You have asked to use pkg-config and are cross-compiling.
Please make sure you have a correctly set-up pkg-config
environment!
Warning: PKG_CONFIG_SYSROOT/PKG_CONFIG_SYSROOT_DIR has not
been set. This means your toolchain's .pc files must contain
the paths to the toolchain's libraries & headers. If configure
tests are failing, please check these files.
Precompiled-headers support enabled.
Symbol visibility control enabled.
This is the Qt for Embedded Linux Open Source Edition.
You are licensed to use this software under the terms of
the Lesser GNU General Public License (LGPL) versions 2.1.
You are also licensed to use this software under the terms of
the GNU General Public License (GPL) versions 3.
Type '3' to view the GNU General Public License version 3.
Type 'L' to view the Lesser GNU General Public License version 2.1.
Type 'yes' to accept this license offer.
Type 'no' to decline this license offer.
Do you accept the terms of either license? yes
Creating qmake. Please wait...
gmake: Nothing to be done for `first'.
floatmath auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o floatmath.o floatmath.cpp
floatmath.cpp:44: warning: unused parameter 'argc'
floatmath.cpp:44: warning: unused parameter 'argv'
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -Wl,-O1 -o floatmath floatmath.o
floatmath enabled.
mmx auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -mmmx -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o mmx.o mmx.cpp
cc1plus: error: unrecognized command line option "-mmmx"
gmake: *** [mmx.o] Error 1
mmx disabled.
3dnow auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -m3dnow -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o 3dnow.o 3dnow.cpp
cc1plus: error: unrecognized command line option "-m3dnow"
gmake: *** [3dnow.o] Error 1
3dnow disabled.
sse auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -msse -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o sse.o sse.cpp
cc1plus: error: unrecognized command line option "-msse"
gmake: *** [sse.o] Error 1
sse disabled.
sse2 auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -msse2 -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o sse2.o sse2.cpp
cc1plus: error: unrecognized command line option "-msse2"
gmake: *** [sse2.o] Error 1
sse2 disabled.
sse3 auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -msse3 -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o sse3.o sse3.cpp
cc1plus: error: unrecognized command line option "-msse3"
gmake: *** [sse3.o] Error 1
sse3 disabled.
ssse3 auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -mssse3 -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o ssse3.o ssse3.cpp
cc1plus: error: unrecognized command line option "-mssse3"
gmake: *** [ssse3.o] Error 1
ssse3 disabled.
sse4_1 auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -msse4.1 -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o sse4_1.o sse4_1.cpp
cc1plus: error: unrecognized command line option "-msse4.1"
gmake: *** [sse4_1.o] Error 1
sse4_1 disabled.
sse4_2 auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -msse4.2 -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o sse4_2.o sse4_2.cpp
cc1plus: error: unrecognized command line option "-msse4.2"
gmake: *** [sse4_2.o] Error 1
sse4_2 disabled.
avx auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -mavx -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o avx.o avx.cpp
cc1plus: error: unrecognized command line option "-mavx"
gmake: *** [avx.o] Error 1
avx disabled.
neon auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -mfpu=neon -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o neon.o neon.cpp
Assembler messages:
Error: unknown floating point format `neon'
Error: unrecognized option -mfpu=neon
neon.cpp:1: error: invalid floating point option: -mfpu=neon
gmake: *** [neon.o] Error 1
neon disabled.
zlib auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o zlib.o zlib.cpp
zlib.cpp:42:18: error: zlib.h: No such file or directory
zlib.cpp: In function 'int main(int, char**)':
zlib.cpp:46: error: 'z_streamp' was not declared in this scope
zlib.cpp:46: error: expected `;' before 'stream'
zlib.cpp:47: error: 'stream' was not declared in this scope
zlib.cpp:48: error: 'zlibVersion' was not declared in this scope
zlib.cpp:51: error: 'compress2' was not declared in this scope
gmake: *** [zlib.o] Error 1
zlib disabled.
libjpeg auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o libjpeg.o libjpeg.cpp
libjpeg.cpp:45:21: error: jpeglib.h: No such file or directory
libjpeg.cpp: In function 'int main(int, char**)':
libjpeg.cpp:50: error: 'j_compress_ptr' was not declared in this scope
libjpeg.cpp:50: error: expected `;' before 'cinfo'
libjpeg.cpp:51: error: 'cinfo' was not declared in this scope
libjpeg.cpp:51: error: 'jpeg_create_compress' was not declared in this scope
gmake: *** [libjpeg.o] Error 1
libjpeg disabled.
libtiff auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o libtiff.o libtiff.cpp
libtiff.cpp:42:20: error: tiffio.h: No such file or directory
libtiff.cpp:50:6: error: #error "Required libtiff not found"
libtiff.cpp: In function 'int main(int, char**)':
libtiff.cpp:57: error: 'tdata_t' was not declared in this scope
libtiff.cpp:57: error: expected `;' before 'buffer'
libtiff.cpp:58: error: 'buffer' was not declared in this scope
libtiff.cpp:58: error: '_TIFFfree' was not declared in this scope
libtiff.cpp:62: error: 'TIFFReadRGBAImageOriented' was not declared in this scope
gmake: *** [libtiff.o] Error 1
libtiff disabled.
libmng auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o libmng.o libmng.cpp
libmng.cpp:42:20: error: libmng.h: No such file or directory
libmng.cpp:50:2: error: #error System libmng version is less than 1.0.9; using built-in version instead.
libmng.cpp: In function 'int main(int, char**)':
libmng.cpp:46: error: 'mng_handle' was not declared in this scope
libmng.cpp:46: error: expected `;' before 'hMNG'
libmng.cpp:47: error: 'hMNG' was not declared in this scope
libmng.cpp:47: error: 'mng_cleanup' was not declared in this scope
gmake: *** [libmng.o] Error 1
libmng disabled.
libpng auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o libpng.o libpng.cpp
libpng.cpp:42:17: error: png.h: No such file or directory
libpng.cpp:45:4: error: #error "Required libpng version 1.0.17 not found."
libpng.cpp: In function 'int main(int, char**)':
libpng.cpp:50: error: 'png_structp' was not declared in this scope
libpng.cpp:50: error: expected `;' before 'png_ptr'
libpng.cpp:51: error: 'png_ptr' was not declared in this scope
libpng.cpp:51: error: 'PNG_LIBPNG_VER_STRING' was not declared in this scope
libpng.cpp:51: error: 'png_create_read_struct' was not declared in this scope
gmake: *** [libpng.o] Error 1
libpng disabled.
DB2 auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o db2.o db2.cpp
db2.cpp:42:20: error: sqlcli.h: No such file or directory
db2.cpp:43:21: error: sqlcli1.h: No such file or directory
gmake: *** [db2.o] Error 1
DB2 disabled.
InterBase auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o ibase.o ibase.cpp
ibase.cpp:42:19: error: ibase.h: No such file or directory
gmake: *** [ibase.o] Error 1
InterBase disabled.
MySQL (thread-safe) auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o mysql.o ../mysql/mysql.cpp
../mysql/mysql.cpp:42:19: error: mysql.h: No such file or directory
gmake: *** [mysql.o] Error 1
MySQL (thread-safe) disabled.
MySQL (thread-unsafe) auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o mysql.o mysql.cpp
mysql.cpp:42:19: error: mysql.h: No such file or directory
gmake: *** [mysql.o] Error 1
MySQL (thread-unsafe) disabled.
OCI auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o oci.o oci.cpp
oci.cpp:42:17: error: oci.h: No such file or directory
gmake: *** [oci.o] Error 1
OCI disabled.
ODBC auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o odbc.o odbc.cpp
odbc.cpp:45:17: error: sql.h: No such file or directory
odbc.cpp:46:20: error: sqlext.h: No such file or directory
gmake: *** [odbc.o] Error 1
ODBC disabled.
iODBC auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o iodbc.o iodbc.cpp
iodbc.cpp:42:17: error: sql.h: No such file or directory
iodbc.cpp:43:20: error: sqlext.h: No such file or directory
gmake: *** [iodbc.o] Error 1
iODBC disabled.
PostgreSQL auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o psql.o psql.cpp
psql.cpp:42:22: error: libpq-fe.h: No such file or directory
psql.cpp: In function 'int main(int, char**)':
psql.cpp:46: error: 'PQescapeBytea' was not declared in this scope
psql.cpp:47: error: 'PQunescapeBytea' was not declared in this scope
gmake: *** [psql.o] Error 1
PostgreSQL disabled.
SQLite2 auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o sqlite2.o sqlite2.cpp
sqlite2.cpp:42:20: error: sqlite.h: No such file or directory
gmake: *** [sqlite2.o] Error 1
SQLite2 disabled.
unknown SQL driver: sqlite_symbian
TDS auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o tds.o tds.cpp
tds.cpp:42:22: error: sybfront.h: No such file or directory
tds.cpp:43:19: error: sybdb.h: No such file or directory
gmake: *** [tds.o] Error 1
TDS disabled.
NIS auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o nis.o nis.cpp
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -Wl,-O1 -o nis nis.o -lnsl
NIS enabled.
Cups auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -o cups.o cups.cpp
cups.cpp:42:23: error: cups/cups.h: No such file or directory
cups.cpp: In function 'int main(int, char**)':
cups.cpp:46: error: 'cups_dest_t' was not declared in this scope
cups.cpp:46: error: 'd' was not declared in this scope
cups.cpp:47: error: 'cupsGetDests' was not declared in this scope
gmake: *** [cups.o] Error 1
Cups disabled.
D-Bus auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -o dbus.o dbus.cpp
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -Wl,-O1 -o dbus dbus.o -L/lib -ldbus-1 -lpthread -lrt
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/lib/gcc/arm-none-linux-gnueabi/4.1.2/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /lib/libdbus-1.so when searching for -ldbus-1
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/lib/gcc/arm-none-linux-gnueabi/4.1.2/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -ldbus-1
collect2: ld returned 1 exit status
gmake: *** [dbus] Error 1
D-Bus disabled.
Glib auto-detection... ()
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-imx -I. -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -o glib.o glib.cpp
glib.cpp: In function 'int main(int, char**)':
glib.cpp:55: warning: 'pollfd' is used uninitialized in this function
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ -Wl,-O1 -o glib glib.o -pthread -lgthread-2.0 -lrt -lglib-2.0
/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/lib/gcc/arm-none-linux-gnueabi/4.1.2/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lgthread-2.0
collect2: ld returned 1 exit status
gmake: *** [glib] Error 1
Glib disabled.
Phonon support cannot be enabled due to functionality tests!
Turn on verbose messaging (-v) to ./configure to see the final report.
If you believe this message is in error you may use the continue
switch (-continue) to ./configure to continue.
The install was obviously unsuccessful but I'm not sure why the .cpp files are failing.
As I said, I'm a beginner with Linux and have no available support here. I realise helping a newbie can be very tedious but I'm lost with this and any help would be greatly appreciated.
EDIT: It should probably be said that I've tried QT, Freescale etc. directly with no luck. No one?
I would recommend you to use an embedded Linux build system, which already knows how to build Qt and all the required dependencies. You will save a lot of time, and at the end of the day, you will have a reproducible method to build your system.
As I am one of its developers, I like Buildroot a lot, but there are numerous other build systems around: OpenEmbedded, Yocto, OpenBricks, PTXdist, and more.
It stops because glib is not found in your toolchain. You required Qt to compile the Phonon module. The Phonon module http://doc.qt.io/qt-4.8/phonon-overview.html#phonon-overview requires gstreamer on Linux, which in turn requires glib and libxml2. Either provide all the necessary libraries to compile the Phonon module or omit it to continue the configure tests as already suggested.
精彩评论