PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cross-compiling Qt fürs BeagleBoard



xaverius
20-06-2011, 16:16
Hallo,

ich möchte Qt 4.7.2 auf meinem Linux-Rechner fürs BeagleBoard kompilieren und erhalte eine Fehlermeldung beim Kompilieren. Hat vielleicht jemand einen Tipp für mich? Insbesondere kann ich auch nichts anfangen mit dem Hinweis zu pkg-config. Mit Qt 4.7.3 habe ich das gleiche Problem. Vorgehen: Ich entpacke die Sourcen für embedded Linux, trage den Crosscompiler in qmake.conf ein (extra Ordner) und rufe configure und danach make auf, siehe unten.

Vielen Dank im Voraus!
André


### Ein- und Ausgabe auf der Shell ###


Rechner$ ./configure -embedded arm -platform qws/linux-x86-g++ -xplatform qws/linux-beagle-g++ -little-endian -prefix /home/ndn/projects/qt_4.7.2/built -opensource -confirm-license -fast -qt-kbd-linuxinput -qt-gif

You have not explicitly asked to use pkg-config and are cross-compiling.
pkg-config will not be used to automatically query cflag/lib parameters for
dependencies

...

Building on: qws/linux-x86-g++
Building for: qws/linux-beagle-g++
Architecture: arm
Host architecture: i386

Build .................. libs examples demos docs translations
Configuration .......... cross_compile release shared dll embedded largefile stl precompile_header neon exceptions_off minimal-config small-config medium-config large-config full-config qt3support accessibility embedded reduce_exports ipv6 clock-gettime clock-monotonic mremap getaddrinfo ipv6ifname getifaddrs inotify png freetype zlib nis multimedia audio-backend svg script scripttools declarative release
Debug .................. no
Qt 3 compatibility ..... yes
QtDBus module .......... no
QtConcurrent code ...... yes
QtGui module ........... yes
QtScript module ........ yes
QtScriptTools module ... yes
QtXmlPatterns module ... no
Phonon module .......... no
Multimedia module ...... auto
SVG module ............. yes
WebKit module .......... yes
JavaScriptCore JIT ..... To be decided by JavaScriptCore
Declarative module ..... yes
Declarative debugging ...yes
Support for S60 ........ no
Symbian DEF files ...... no
STL support ............ yes
PCH support ............ yes
MMX/3DNOW/SSE/SSE2/SSE3. no/no/no/no/no
SSSE3/SSE4.1/SSE4.2..... no/no/no
AVX..................... no
iWMMXt support ......... no
NEON support ........... yes
IPv6 support ........... yes
IPv6 ifname support .... yes
getaddrinfo support .... yes
getifaddrs support ..... yes
Accessibility .......... yes
NIS support ............ yes
CUPS support ........... no
Iconv support .......... no
Glib support ........... no
GStreamer support ...... no
PulseAudio support ..... no
Large File support ..... yes
GIF support ............ plugin
TIFF support ........... plugin (qt)
JPEG support ........... plugin (qt)
PNG support ............ yes (qt)
MNG support ............ plugin (qt)
zlib support ........... yes
Session management ..... no
Embedded support ....... arm
Freetype2 support ...... auto (yes)
Graphics (qt) .......... linuxfb multiscreen
Graphics (plugin) ......
Decorations (qt) ....... styled windows default
Decorations (plugin) ...
Keyboard driver (qt) ... tty linuxinput
Keyboard driver (plugin) ..
Mouse driver (qt) ...... pc linuxtp
Mouse driver (plugin) ..
OpenGL support ......... no
OpenVG support ......... no
SQLite support ......... plugin (qt)
OpenSSL support ........ no
Alsa support ........... no
ICD support ............ no

...

Rechner$ make

...

arm-linux-gnueabi-g++ -c -include .pch/release-shared-emb-arm/QtCore -pipe -fno-exceptions -O2 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_FAST_CONCATENATION -DELF_INTERPRETER=\"/lib/ld-linux.so.2\" -DHB_EXPORT=Q_CORE_EXPORT -DQT_NO_DEBUG -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/qws/linux-beagle-g++ -I. -I../../include -I../../include/QtCore -I.rcc/release-shared-emb-arm -Iglobal -I../3rdparty/zlib -I../3rdparty/harfbuzz/src -I../3rdparty/md5 -I../3rdparty/md4 -I.moc/release-shared-emb-arm -o .obj/release-shared-emb-arm/qobject.o kernel/qobject.cpp
{standard input}: Assembler messages:
{standard input}:1957: Error: selected processor does not support Thumb mode `swp r6,r4,[r0]'
make[1]: *** [.obj/release-shared-emb-arm/qobject.o] Fehler 1
make[1]: Verlasse Verzeichnis '/home/ndn/projects/qt_4.7.2/src/corelib'
make: *** [sub-corelib-make_default-ordered] Fehler 2


### Inhalt von qmake.conf ###


include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)

# 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++
# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy
QMAKE_STRIP = arm-linux-gnueabi-strip

load(qt_config)

undefined
21-06-2011, 06:47
Die Meldung ist eine Assembler Fehlermeldung und ist Prozessor abhängig.


{standard input}:1957: Error: selected processor does not support Thumb mode `swp r6,r4,[r0]'
Die Frage ist hierbei ob das mit Macros abgefangen werden kann.
Im Moment hast du alles was AS Macros steuert abgeschaltet.


MMX/3DNOW/SSE/SSE2/SSE3. no/no/no/no/no
SSSE3/SSE4.1/SSE4.2..... no/no/no
AVX..................... no


Ob das überhaupt geht solltest du besser bei Qt nachfragen - oder testen bis es geht.
Notfalls Eigene mkspecs Schreiben - da habe ich bei mingw32 auch machen müssen.
PS: Achte auch darauf das der Preprozessor (cpp) richtig gewählt ist.