2012-11-12 10 views
6

Ich arbeite an Fedora 17 und ich möchte mit libpcap programmieren. Das Problem ist, dass mein Computer pcap.h nicht findet, was wirklich seltsam ist, seit ich libpcap und libpcap-devel installiert habe. Auf meiner Station arbeitet auch "Wireshark" und "Snort", von dem ich glaube, dass er diese Bibliothek benutzt. Also, wenn ich meinen Code zu kompilieren mit ...Probleme beim Finden von pcap.h und Verknüpfen

#include <pcap.h> 
... Code 

Und verwenden gcc my_file.c -lpcap, erhalte ich Compiler-Fehler, die sagen ... nicht finden können, pcap.h. Was seltsam ist, ist dass ich meine libpcap.so Dateien im/libraries/Verzeichnis sehe. Ich habe getan ..

yum libpcap und yum libpcap-devel

Ich weiß nicht installieren installieren, warum Fedora mir dies tut.

Danke für jede Hilfe!

Antwort

2

Sie werden die Ordner angeben, wo die Header installiert sind, zum Beispiel:

gcc -I/usr/include/pcap my_file.c -lpcap 

locate pcap.h Versuchen Sie das richtige Verzeichnis zu finden, mit dem -I Schalter zu verwenden.

+0

Ya es nicht sehen M wie libpcap und libpcap-devel kommen mit den notwendigen Dateien, die ich brauche. Ich denke, ich muss alle einzelnen Header-Dateien finden. –

6

~$ whereis pcap 

Versuchen Sie dann, wie mata sagte

gcc -lpcap -I{path} file.c 

wo {path} der Weg ist, dass whereis geben Ihnen, Sie am Ende des mit dem pcap.h String werden wählen (ohne die pcap.h Teil).

+1

Wenn Sie frustriert sind und keine Lösung für Ihr Problem finden, können Sie noch eine weitere Anstrengung unternehmen, um sicherzustellen, dass Sie die Bibliothek ordnungsgemäß installiert haben. '~ $ find/usr/-iname '* .c' -oder '* .h' | grep -i pcap' – yeyo

+0

Ich habe es zur Arbeit, danke –

+0

@Dirk Ich glaube, wegen meiner ersten Kommentar, auch auf das Datum der Antwort. – yeyo

10

Ihre Bibliothek könnte fehlen, installieren Sie sie und verbinden Sie sie

yum install libpcap-devel 

In Ihrem Make-Datei hinzu:

-L/usr/lib -lpcap 
+1

OP states 'libpcap-devel' ist installiert (zusammen mit' libpcap')! – Dirk

0

Um das Programm in c ausführen ++:

für C++ Programm

g++ program_name.cpp -lpcap