Robotino in eclipse

Die Programmierung des c't-Bot
Antworten
haubex

Robotino in eclipse

Beitrag von haubex » 11 Mai 2008, 11:30

Hallo an alle,

ich will auf dem Robotersystem "Robotino" von Festo-Didactic programmieren (C++). Dafür nutze ich Linux und eclipse.
(Das Betriebssystem des Robotinos ist auch Linux)
Leider sind die Dokumentationen von Festo-Didactic eher weniger gut, was die Einrichtung des Projekts angehen..

Wie kann ich auf eine Shared Library linken und welche Einstellung sind bei eclipse notwendig?

haubex

Beitrag von haubex » 12 Mai 2008, 01:04

Programmiert hier niemand mit eclipse cdt?!
Ist ja eigentlich egal, auf welchem Endgerät das Programm laufen wird. Es geht mir nur um das linken und finden einer shared Library...

hm... :roll:

eax
Friends of Robby
Friends of Robby
Beiträge: 758
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Beitrag von eax » 13 Mai 2008, 09:07

Hi,
immer locker bleiben ;-)

Also ich vermute mal, du verwendest CDT mit managed Makefile und GNU ld als Linker?
Dann musst du in den Projekteigenschaften unter "C/C++ Build" -> "Settings" -> "GCC C Linker" -> "Libraries" bei "-l" die Namen der Libraries angeben und bei "-L" den Pfad, wo diese liegen, falls das nicht dort ist, wo der Linker sie standardmäßig erwartet.

Außerdem müssen die Libraries natürlich auf dem Zielsystem installiert sein und dem Loader muss der Pfad bekannt sein.

Gruß Timo

haubex

Beitrag von haubex » 13 Mai 2008, 09:43

Gut danke..so weit so gut!

Das klappt soweit auf meinem System! Die Linkereinstellungen funktionieren..
Ist das jetzt so, dass das "executeable" auch den Pfad übernimmt? Sprich, das die Datei beim Ausführen in dem Linkerpfad sucht, oder gilt das nur für das builden??

In den Run-Einstellungen von eclipse kann man ja für den Debugger noch Libraries angeben...Ich schließe daraus, dass die Libraries auf jedem anderen System eingestellt werden müssen..ist das so!?!?

eax
Friends of Robby
Friends of Robby
Beiträge: 758
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Beitrag von eax » 13 Mai 2008, 12:12

haubex hat geschrieben:Ist das jetzt so, dass das "executeable" auch den Pfad übernimmt? Sprich, das die Datei beim Ausführen in dem Linkerpfad sucht, oder gilt das nur für das builden??
Das gilt nur für den Build-Prozess. Auf dem Zielsystem muss die shared-Lib installiert sein und im Pfad liegen, wo der Loader beim Laden der Applikation sucht. Alternativ kannst du einen anderen Pfad auch in LD_LIBRARY (auf dem Target) angeben, das macht aber nur dann Sinn, wenn du z.B. keine Schreibrechte auf den Standardpfad hast.
haubex hat geschrieben:In den Run-Einstellungen von eclipse kann man ja für den Debugger noch Libraries angeben...Ich schließe daraus, dass die Libraries auf jedem anderen System eingestellt werden müssen..ist das so!?!?
Was meinst du mit eingestellt? Die Libraries müssen dort halt vorhanden sein und der Loader muss sie natürlich auch finden (s.o.).

Shared Libraries machen aber nur dann Sinn, wenn sie von vielen Applikationen benutzt werden oder wenn man sie zentral austauschen können möchte. Sonst würde ich einfach statisch linken, dann ist alles, was du brauchst, bereits in der Applikation mit drin. Kommt aber natürlich auf den Anwendungsfall an.

Gruß Timo

haubex

Beitrag von haubex » 13 Mai 2008, 16:58

Ja alles klar. Das mit dem Loader wollt ich wissen! Danke für deine Antwort!!!

Klar kann man dies auch mit statischen Bibliotheken machen, aber wenn die nicht angeboten werden ist's natürlichauch nicht sinnvoll!
Hab das Problem gefunden, warum die Bibliotheken lokal auf meinem PC gefunden werden, auf dem Robotino jedoch nicht...
Die Bibliothek wird auf dem System noch nicht angeboten. Und um Sie sinnvoll nutzen zu können muss ich mir jetzt direkt vom Kundensupport helfen lassen.
Also wars nicht mein Fehler, sondern der von anderen ;) ( Stichwort: Ungenügend ausreichende Dokumentationen )

Danke für den Tipp mit dem Loader :D

Gruß

haubex

Beitrag von haubex » 13 Mai 2008, 17:14

Ach so..Was sehr nützlich war, ist der Befehl ldd executeable...

Hierdurch wird einem angezeigt, auf welche Bibliothek das Programm verweist, und wo er diese findet ( wenn er sie überhaupt findet )

:)

jmb

Nun gibt es entlich die Doku

Beitrag von jmb » 03 Aug 2008, 11:09

Hi !

Ich habe auch gesucht wie das geht.
Nun gibt es ein eigenes Forum für Robotino:

http://forum.openrobotino.org

und da seht dann auch alles genau in der
API-Howto beschrieben
http://forum.openrobotino.org/showthread.php?t=20

(hat mir zumindest geholfen)


Grüße
Jens !

Antworten