WinFuture-Forum.de: Fehler Beim Kompilieren - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Fehler Beim Kompilieren


#1 Mitglied ist offline   Junktyz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 138
  • Beigetreten: 10. Juni 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart

geschrieben 15. Januar 2007 - 15:55

Hallo,

ich bin grad dabei, ein gaaanz einfaches Programm zu schreiben bzw. mich in die Thematik Sniffen/Tracen einzuarbeiten und arrbeite ich das Tutorial von www.tcpdump.org durch. Allerdings bin ich nicht wirklich gut im Programmieren unter Linux ;) und bin gleich am Anfang auf ein Problem für mich gestoßen.

#include <stdio.h>
#include <pcap.h>

int main(int argc, char *argv[])
{
	char *dev, errbuf[PCAP_ERRBUF_SIZE];

	dev = pcap_lookupdev(errbuf);
	if (dev == NULL) {
		fprintf(stderr, "Couldn't find default device: %s\n", errbuf);
		return(2);
	}
	printf("Device: %s\n", dev);
	return(0);
}


Wenn ich das mit

gcc tcpdump_test.c

kompiliere, kommt folgende Fehlermeldung:

/tmp/ccI35iYI.o: In function `main':
tcpdump_test.c:(.text+0x42): undefined reference to `pcap_lookupdev'
collect2: ld returned 1 exit status

Kann mir jemand weiter helfen? Hab noch nicht wirklich ne brauchbare Lösung gefunden.
0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.686
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 15. Januar 2007 - 16:34

Hast du sowohl die Header-Files als auch die Libs von Pcap eingebunden?
0

#3 Mitglied ist offline   Junktyz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 138
  • Beigetreten: 10. Juni 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart

geschrieben 15. Januar 2007 - 17:04

 Zitat (Witi: 15.01.2007, 16:34)

Hast du sowohl die Header-Files als auch die Libs von Pcap eingebunden?


Bis auf das was ich oben geschrieben habe, hab ich nix gemacht.
0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.686
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 15. Januar 2007 - 17:49

Dann kompiliere das mal so:
gcc -I/path/to/include -L/path/to/libs tcpdump_test.c

0

#5 Mitglied ist offline   Junktyz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 138
  • Beigetreten: 10. Juni 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart

geschrieben 15. Januar 2007 - 19:09

 Zitat (Witi: 15.01.2007, 17:49)

Dann kompiliere das mal so:
gcc -I/path/to/include -L/path/to/libs tcpdump_test.c


Okay, werd ich morgen auf Arbeit dann mal ausprobieren. Danke :D
0

#6 Mitglied ist offline   Junktyz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 138
  • Beigetreten: 10. Juni 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart

geschrieben 16. Januar 2007 - 11:15

Die pcap.h befindet sich im Ordner /usr/include und die libpcap.so im Ordner /usr/lib

Also hab ich probiert, das so zu kompilieren:

Zitat

gcc -I/usr/include -L/usr/lib tcpdump_test.c


Aber er meldet noch den selben Fehler.

Dieser Beitrag wurde von Junktyz bearbeitet: 16. Januar 2007 - 11:24

0

#7 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.686
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 16. Januar 2007 - 11:21

Zitat

libpcap.so im Ordner /usr/include

Zitat

-L/usr/lib

eine Aussage davon stimmt nicht :8):
0

#8 Mitglied ist offline   Junktyz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 138
  • Beigetreten: 10. Juni 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart

geschrieben 16. Januar 2007 - 11:25

Zitat 1 stimmt nicht, sorry :8):.

Habs mal editiert. Die Library liegt natürlich im Ordner /usr/lib
0

#9 Mitglied ist offline   Junktyz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 138
  • Beigetreten: 10. Juni 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart

geschrieben 16. Januar 2007 - 11:43

Okay, jetzt funktioniert es.

Ich musste nicht angeben wo die Includes und Libraries sind, da der Compiler die standardmäßig durchsucht.

Was gefehlt hat, ist ein "-lpcap", mit dem man angibt, dass die gegen shared Lib libpcap.so gelinkt werden soll.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0