5.2.20
04/03/20
Last Modified 01/08/14 by Walter Tasin
OOP_EclipseLib Reload Page

Einbinden einer Bibliothek unter Eclipse

Allgemeines

Eclipse verwendet die GNU-Tools zum Erstellen von Programmen.
Dateinamen von statischen Bibliotheken haben immer folgendes Aussehen:
libBibliotheksname.a

Dem Linker wird das Einbinden einer Bibliothek mit dem Schalter -l mit nachfolgendem Bibliotheksnamen mitgeteilt.Beispiel:
Die C++-Objektdatei versuch.o verwendet eine Mathematikfunktion, die sich in der Mathematikbibliotheksdatei (libm.a) befindet.
Der Linkeraufruf sieht wie folgt aus:
g++ -o versuch.exe versuch.o -lm

Sollte es sich um eine Bibliotheksdatei handeln, die sich nicht in den Standardpfaden der GNU-Tools befindet, dann muss noch der Pfad angegeben werden in dem zusätzliche Bibliotheken gesucht werden sollen.
Dies geschieht über den Linkerschalter -L mit nachfolgender relativer oder absoluter Pfadangabe.

Beispiel:

g++ -o versuch.exe versuch.o -L.. -Llibs -lutil

Der Aufruf bindet versuch.o und Funktionen der Bibliotheksdatei libutil.a zusammen. Die Suche nach der Bibilotheksdatei findet im übergeordneten Verzeichnis, im Unterverzeichnis libs und in den Standardverzeichnissen statt.


Verwendete Bibliotheken in Versuch 6 der Lehrveranstaltung OOP

Die zur Verfügung gestellten Bibliotheken sind für MinGW erstellt worden. Das heißt die Bibliotheken können nur unter Windows verwendet werden und nicht unter einer nativen Linux-Distribution.

Teil b benötigt die Bibliotheksdatei liboop_v6.a (Schalter: -loop_v6).

Teil c benötigt neben der Bibliotheksdatei liboop_v6.a auch noch die Bibliothek für die Ansteuerung des USB-Displays librageLCD.a. Welche ihrerseits Funktionen aus den Bibliotheksdateien libsetupAPI.a, libhid.a und libgdi32.a der MinGW-GNU-Tools verwendet.

Vorbereitung des Eclipse-Arbeitsbereichs für Versuch 6

  • Erstellen Sie den Arbeitsbereich L:\Projects\versuch6 durch Angabe des Pfads als Workspace-Directory beim Start von Eclipse
  • Erstellen Sie zwei leere C++-Konsolenanwendungsprojekte (Toolchain: MinGW GCC) mit den Namen v6_1 und v6_2 im Arbeitsbereich versuch6
    • Entpacken Sie die zur Verfügung gestellten Quelldateien und Bibliotheken aus der Datei oop_v6_sourcen_Studenten.zip in den Arbeitsbereich (Verzeichnis versuch6)
      Kopieren Sie die Datei PhonebookController.cpp in die Projektverzeichnisse v6_1 und v6_2
oop_v6_1.png

Einstellungen für Projekt v6_1 (Versuch 6 Teil b)

  • Wählen Sie nun die Projekteigenschaften des Projekts v6_1
oop_v6_2.png
  • Stellen Sie Eclipse so ein, dass Include-Dateien des Arbeitsbereichsverzeichnis ebenfalls gefunden werden.
oop_v6_inc.png
  • Legen Sie nun fest, dass die Bibliothek oop_v6 aus dem Unterverzeichnis oop_v6_lib des Arbeitsbereiches (d. h. ../../oop_v6_lib) dazugebunden werden soll.
oop_v6_3.png

oop_v6_4.png



Einstellungen für Projekt v6_2 (Versuch 6 Teil c)

  • Wählen Sie nun die Projekteigenschaften des Projekts v6_2
    • Stellen Sie Eclipse so ein, dass - wie in Projekt v6_1 - neben dem Projektverzeichnis auch das Arbeitsbereichsverzeichnis nach Include-Dateien durchsucht wird.
    • Legen Sie nun fest, dass alle nötigen Bibliotheken (oop_v6, rageLCD, setupAPI, hid und gdi32) aus den Unterverzeichnisse oop_v6_lib und rageLCD_lib des Arbeitsbereiches (d. h. ../../oop_v6_lib und ../../rageLCD_lib) dazugebunden werden soll.
Hinweis: Achten Sie darauf, dass die Bibliotheken setupAPI, hid und gdi32 nach der Bibliothek rageLCD angegeben werden.
Die Einstellungen für die Angabe von Bibliotheken soll sich wie folgt darstellen:
oop_v6_5.png

Sie können nun die fehlenden Quelldateien für die Aufgabenstellung implementieren.

Beim Erstellen des Projekts sehen Sie in der Eclipse-Console welche Schalter (für Compile und Link) verwendet wurden:
oop_v6_6.png