Einrichten von Eclipse für die Nutzung von externer Libraries

OP #3444525
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
OP #3444768
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
#3444817
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.
Persönliche Seite #3444830
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren