Hallo,
ich muss dringend SW für ARM coden, bekomme aber bei QtCreator unter Ubuntu die meldung:
/usr/local/Trolltech/QtEmbedded-4.7.2-arm/lib/libQtGui.so: undefined reference to `d17'
/usr/local/Trolltech/QtEmbedded-4.7.2-arm/lib/libQtGui.so: undefined reference to `q0'
/usr/local/Trolltech/QtEmbedded-4.7.2-arm/lib/libQtGui.so: undefined reference to `d18'
Mein Vorgehensweise:
tslib:
./autogen.sh
export ac_cv_func_malloc_0_nonnull=yes
./configure CC=arm-cortexa8-linux-gnueabi-gcc CXX=arm-cortexa8-linux-gnueabi-g++ -host=arm-cortexa8-linux-gnueabi
–target=arm-cortexa8-linux-gnueabi –enable-static=no –enable-shared=yes
make –k
sudo « make –k install »
qmakeke.conf in QtEmbedded.4.7.2mkspecs/qws/linux-arm-g++:
QMAKE_CC = arm-cortexa8-linux-gnueabi-gcc
QMAKE_CXX = arm-cortexa8-linux-gnueabi-g++
QMAKE_LINK = arm-cortexa8-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-cortexa8-linux-gnueabi-g++
QMAKE_AR = arm-cortexa8-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-cortexa8-linux-gnueabi-objcopy
QMAKE_RANLIB = arm-cortexa8-linux-gnueabi-ranlib
QMAKE_LFLAGS += -Wl,-rpath-link=/usr/local/lib
QMAKE_INCDIR += /usr/local/include
QMAKE_LIBDIR += /usr/local/lib
und dann:
./configure -embedded arm -no-armfpa -little-endian -qt-gfx-transformed -qt-gfx-linuxfb -nomake demos -nomake examples -no-svg -no-phonon -no-qt3support -no-feature-CURSOR -no-webkit -qt-mouse-tslib
make und make install
QtCreator-Path enthält CrossCompiler(arm-cortexa8-linux). Ich kann mit QT_Path4.7.3 kompilieren und ausführen, mit QT_Embedded4.7.2 aber nicht kompilieren (Kann in Creator eingestellt werden) .
Kann mir wer helfen? Ich habe QtEmbedded zich mal kompiliert, immer mit anderer Konfiguration -geht trotzdem nich. Also bitte, jede Hilfe wird dankbar angenommen.
Qt-Embedded Arm
-
juliaABC1979
- Beiträge: 2
- Registriert: 9. April 2011 09:17
BITTE HILFE!!!!! QtEmbedded
Mein genaue Fehlermeldung unter Ubuntu nach make:
arm-cortexa8-linux-gnueabi-g++ -L/usr/local/lib -Wl,-rpath-link=/usr/local/lib -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib -o test main.o -L/usr/local/lib -L/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib -lQtGui -L/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib -L/usr/local/lib -lQtNetwork -lQtCore -lpthread
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d16'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d17'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d18'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d19'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d26'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d27'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d28'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d29'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d21'
collect2: ld returned 1 exit status
Kann jemand was damit anfange? Bitte um Hilfe...
arm-cortexa8-linux-gnueabi-g++ -L/usr/local/lib -Wl,-rpath-link=/usr/local/lib -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib -o test main.o -L/usr/local/lib -L/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib -lQtGui -L/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib -L/usr/local/lib -lQtNetwork -lQtCore -lpthread
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d16'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d17'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d18'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d19'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d26'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d27'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d28'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d29'
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/libQtGui.so: undefined reference to `d21'
collect2: ld returned 1 exit status
Kann jemand was damit anfange? Bitte um Hilfe...
Nur nicht, dass ein falscher Eindruck entsteht: das ist Stochern im Heuhaufen:
Für mich klingen diese "dXY" nach irgendwelchen ARM-Registern. Keine Ahnung, warum das "C-Referenzen" sind und warum die nicht gefunden werden.
Aber: was mich stutzig macht ist diese Mischung der Pfade beim Crosscompiler:
arm-cortexa8-linux-gnueabi-g++ -L/usr/local/lib -Wl,-rpath-link=/usr/local/lib -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib -o test main.o -L/usr/local/lib -L/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib -lQtGui -L/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib -L/usr/local/lib -lQtNetwork -lQtCore -lpthread
Ist das ok so? Ich habe gerade kein ARM-Buildsystem zur Hand, aber ich meinte, bei mir hätte ich alle Pfade sauber vom Host-System getrennt (so das der Linker auf gar keinen Fall irgendwelche Libraries vom x86-Host findet).
Wie sieht es denn aus, wenn du ein "ANSI-C-Hello-World" erstellst.. so ganz ohne Qt? Klappt das dann auch mit dem Linker? Wie sieht es aus, wenn du den Qt-Linkeraufruf mal von Hand ohne diese ganzen nicht-ARM-Pfade machst?
Für mich klingen diese "dXY" nach irgendwelchen ARM-Registern. Keine Ahnung, warum das "C-Referenzen" sind und warum die nicht gefunden werden.
Aber: was mich stutzig macht ist diese Mischung der Pfade beim Crosscompiler:
arm-cortexa8-linux-gnueabi-g++ -L/usr/local/lib -Wl,-rpath-link=/usr/local/lib -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib -o test main.o -L/usr/local/lib -L/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib -lQtGui -L/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib -L/usr/local/lib -lQtNetwork -lQtCore -lpthread
Ist das ok so? Ich habe gerade kein ARM-Buildsystem zur Hand, aber ich meinte, bei mir hätte ich alle Pfade sauber vom Host-System getrennt (so das der Linker auf gar keinen Fall irgendwelche Libraries vom x86-Host findet).
Wie sieht es denn aus, wenn du ein "ANSI-C-Hello-World" erstellst.. so ganz ohne Qt? Klappt das dann auch mit dem Linker? Wie sieht es aus, wenn du den Qt-Linkeraufruf mal von Hand ohne diese ganzen nicht-ARM-Pfade machst?
Hi,
soweit ich das verstanden habe, willst du auf deinem x86 System für den Arm Cortex a8 kompilieren.
Wo liegt denn die Toolchain "arm-cortexa8-linux-gnueabi-g++"?
Innerhalb der qmake.conf hast du ja keinen direkten Pfad angeben. Daher gehe ich mal davon aus, dass der Pfad zu deiner Toolchain in der Systemvariablen PATH gesetzt ist. Richtig? Oder liege ich total falsch?
Jedenfalls siehe ich das ähnlich mit solarix, innerhalb deiner qmake.conf sehen die Variablen,
QMAKE_LFLAGS
QMAKE_INCDIR
QMAKE_LIBDIR
sehr eigenartig aus. Sie müssen auf die Header/libs von der Toolchain verweisen.
Wie lautet denn dein Pfad zur Toolchain?
soweit ich das verstanden habe, willst du auf deinem x86 System für den Arm Cortex a8 kompilieren.
Wo liegt denn die Toolchain "arm-cortexa8-linux-gnueabi-g++"?
Innerhalb der qmake.conf hast du ja keinen direkten Pfad angeben. Daher gehe ich mal davon aus, dass der Pfad zu deiner Toolchain in der Systemvariablen PATH gesetzt ist. Richtig? Oder liege ich total falsch?
Jedenfalls siehe ich das ähnlich mit solarix, innerhalb deiner qmake.conf sehen die Variablen,
QMAKE_LFLAGS
QMAKE_INCDIR
QMAKE_LIBDIR
sehr eigenartig aus. Sie müssen auf die Header/libs von der Toolchain verweisen.
Wie lautet denn dein Pfad zur Toolchain?