Forum: PC Hard- und Software Einrichten von Eclipse für die Nutzung von externer Libraries


von Dennis S. (eltio)


Lesenswert?

Hallo zusammen,

ich möchte ein kleines Projekt unter Linux erstellen, um ein bisschen 
mit dem lwIP-Stack rumzuprobieren.

Installierte Software ist:
- Xubuntu 13.04 64 Bit
- Eclipse 3.8
- liblwipv6-2 und liblwipv6-dev über Synaptic-Paketverwaltung

Anschließend habe ich von hier
http://git.savannah.gnu.org/cgit/lwip/lwip-contrib.git/tree/apps/ping
die Applikation runtergeladen. Zusätzlich ist im Projekt der folgende 
Code
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include "ping.h"
4
5
int main(void) {
6
  puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
7
  return EXIT_SUCCESS;
8
}
Das ist natürlich nicht fertig.

In den Projekt-Properties habe ich unter
   C/C++-Build -> Settings -> Libraries
einmal "lwip" als Library und "/usr/lib" als "Search path" eingetragen.

Die Meldung in der Konsole ist
1
22:53:23 **** Incremental Build of configuration Debug for project lwip_test ****
2
make all 
3
Building file: ../src/ping.c
4
Invoking: GCC C Compiler
5
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/ping.d" -MT"src/ping.d" -o "src/ping.o" "../src/ping.c"
6
../src/ping.c:41:22: Schwerwiegender Fehler: lwip/opt.h: Datei oder Verzeichnis nicht gefunden
7
Kompilierung beendet.
8
make: *** [src/ping.o] Fehler 1
9
10
22:53:23 Build Finished (took 177ms)

Wie bekomme ich das jetzt richtig eingerichtet?

Gruß Dennis

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Dennis S. schrieb:
> lwip/opt.h

Kommt doch in deinem Code überhaupt nicht vor! Also bitte den Teil 
zeigen der auch den Fehler verursacht... Der Libpath ist auch wenn ich 
das richtig erinnere für den Linker, für Header gibt es den Includepath.

: Bearbeitet durch User
von Dennis S. (eltio)


Lesenswert?

Läubi .. schrieb:
> Dennis S. schrieb:
>> lwip/opt.h
>
> Kommt doch in deinem Code überhaupt nicht vor! Also bitte den Teil
> zeigen der auch den Fehler verursacht... Der Libpath ist auch wenn ich
> das richtig erinnere für den Linker, für Header gibt es den Includepath.

Ja richtig, noch eine Sache die ich nicht nachvollziehen kann. Also, was 
muss ich machen, damit Eclipse die liblwip mit dazu linkt?

Gruß Dennis

von Stefan R. (srand)


Lesenswert?

Du hast doch gar kein Problem mit dem Linken, sondern schon mit dem 
Präprozessor.

Also, wie Läubi schon geschrieben hat: setze den richtigen Include-Pfad.

Das ist irgendwo in der Nähe des Library-Suchpfads, je nach Plugin, 
vermutlich ein, zwei Tabs nebendran.

von Dennis S. (eltio)


Lesenswert?

Warum sollte man denn Programmbibliotheken nutzen wenn man trotzdem noch 
den Quellcode braucht? Ich möchte doch nur die liblwip mit dazu 
linken... Ich sitze gerade leider nicht am richtigen Rechner um weiter 
zu probieren.

Gruß
Dennis

von Stefan R. (srand)


Lesenswert?

Und woher soll der Compiler wissen, welche Funktionen mit welchen 
Signaturen existieren?

Ich schlage vor, due fängst mal etwas kleiner an und machst dir zunächst 
mal anhand einiger Miniprogramme mit mehreren c- und h-Dateien klar, wie 
das Übersetzungsmodell von C aussieht.

Wenn du dazu gerade keine Zeit hast, sondern dein lwip-Ding schnell am 
Laufen haben mußt, dann tu endlich, was wir dir seit x Beiträgen sagen 
(Include-Pfad), und lerne die zugrundeliegenden Abläufe später mal in 
Ruhe.

Aber völlig ohne Hintergrundwissen die gegebenen Tipps anzuzweifeln, und 
"zur Sicherheit" noch nichtmal auszuprobieren, hilft dir nicht weiter.

Und um noch deine Frage zu beantworten: Du brauchst ja gar nicht "den 
Quellcode", sondern nur einen kleinen Ausschnitt davon, nämlich einen 
Header.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Dennis S. schrieb:
> Warum sollte man denn Programmbibliotheken nutzen wenn man trotzdem noch
> den Quellcode braucht?

Du brauchst nicht den Quellcode, aber du benötigst eine Deklaration für 
die Verwendung, dabei ist das egal ob das "externe" oder "eigene" Module 
sind. Man hätte das natürlich kombinieren können (so wie das z.B. in 
Java oder C# ist, das hat Vor- und Nachteile) hat man aber nicht.

Daher wird zu jeder "Bibliothek" wenigstens eine Menge von Headerfiles 
mitgeliefert, die du ja scheinbar auch versuchst einzubinden.

von Dennis S. (eltio)


Lesenswert?

Danke Läubi, jetzt ist's klar! :-) Ich werde das nachher mal in Eclipse 
ausprobieren.

Gruß
Dennis

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.