Forum: Compiler & IDEs Beagleboard Angstrom C++ Linker Fehler


von Thomas S. (dreamer2000)


Lesenswert?

Hi!

Ich habe es bereits erfolgreich geschafft unter Ubuntu C-Programme für 
das Beagleboard mit Angstrom Linux darauf zu kompilieren.

Hat mit dieser Hilfe
http://groups.google.com/group/beagleboard/browse_thread/thread/cf08b66fd9c9f306
wunderbar funktioniert.

Um nun C++ Programm zu kompilieren habe ich unter Eclipse ein C++ 
Projekt eröffnet und in den Projekt-Properties den g++ Eintrag für den 
C++-Compiler erweitert.

Allerdings erhalte ich jetzt beim Linken einer C++-Klasse, welche von 
einem anderen cpp-code aufgerufen/verwendet wird, folgenden Fehler über 
welchen ich trotz suchen in google/foren erfolglos geblieben bin:
-> Beim Kompilieren für x86 erscheint kein Fehler, der Code dürfte also 
in Ordnung sein.

**** Build of configuration Release for project BeagleCpp ****

make all
Building file: ../src/BeagleCpp.cpp
Invoking: GCC C++ Compiler
/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++ 
-I/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/include -O3 
-Wall -c -fmessage-length=0 -MMD -MP -MF"src/BeagleCpp.d" 
-MT"src/BeagleCpp.d" -o"src/BeagleCpp.o" "../src/BeagleCpp.cpp"
Finished building: ../src/BeagleCpp.cpp

Building file: ../src/UDPSocket.cpp
Invoking: GCC C++ Compiler
/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++ 
-I/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/include -O3 
-Wall -c -fmessage-length=0 -MMD -MP -MF"src/UDPSocket.d" 
-MT"src/UDPSocket.d" -o"src/UDPSocket.o" "../src/UDPSocket.cpp"
Finished building: ../src/UDPSocket.cpp

Building target: BeagleCpp
Invoking: GCC C++ Linker
/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc 
-L/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/lib -o"BeagleCpp" 
./src/BeagleCpp.o ./src/UDPSocket.o
./src/BeagleCpp.o: In function `main':
BeagleCpp.cpp:(.text+0x84): undefined reference to `__cxa_end_cleanup'
./src/BeagleCpp.o:(.ARM.extab+0x0): undefined reference to 
`__gxx_personality_v0'
collect2: ld returned 1 exit status
make: *** [BeagleCpp] Error 1


Bitte um Hilfe oder Tipps,

Vielen Dank,
Thomas

von Klaus W. (mfgkw)


Lesenswert?

Ich kenne dein System jetzt nicht, aber evtl. liegt es nur daran, daß 
die C++-Libs nicht automatisch dazu gelinkt werden.

1. Möglichkeit: Wenn du weisst, wo deine Libs liegen (lib...), kannst du 
ja mal schauen ob es da eine passende gibt, die sich verdächtig anhört 
und die mit -l... dazu linken.
Wenn es da z.B. eine libstdc++.so gibt, wäre die Option -lstdc++.

2. Als Linker nicht wie von dir bisher ...gcc nehmen, sondern ...g++ - 
der sollte die nötigen Libs für C++ kennen und gleich dazu linken.

Thomas S. schrieb:
> Building target: BeagleCpp
> Invoking: GCC C++ Linker
> /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc  <= hier g++!
> ...

von Thomas S. (dreamer2000)


Lesenswert?

Vielen Dank Klaus!!

Möglichkeit 2 wars :-)

mit g++ linken hat funktioniert!

Danke!
Thomas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.