Einrichten von Eclipse für die Nutzung von externer Libraries

OP #3444525
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
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
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.
OP
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
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
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

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.