2012-11-12 28 views
6

Tôi đang làm việc trên Fedora 17 và tôi muốn lập trình với libpcap. Vấn đề là máy tính của tôi không tìm thấy pcap.h, điều này thực sự đáng sợ vì tôi đã cài đặt libpcap và libpcap-devel. Ngoài ra wireshark và snort hoạt động trên đài của tôi mà tôi tin rằng sử dụng thư viện đó. Vì vậy, khi tôi biên dịch mã của mình với ...Sự cố khi tìm pcap.h và liên kết

#include <pcap.h> 
... Code 

Và sử dụng gcc my_file.c -lpcap, tôi gặp lỗi trình biên dịch nói ... không thể tìm thấy pcap.h. Whats lẻ là tôi thấy các tập tin libpcap.so của tôi trong/thư mục/thư mục. Tôi đã làm ..

yum install libpcap và yum install libpcap-devel

Tôi không biết tại sao Fedora được làm điều này với tôi.

Cảm ơn bạn đã trợ giúp!

Trả lời

2

Bạn sẽ phải chỉ định thư mục mà các tiêu đề được cài đặt, ví dụ:

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

Hãy thử locate pcap.h để tìm thư mục bên phải để sử dụng với -I switch.

+0

Ya nó không thấy m như libpcap và libpcap-devel đi kèm với các tập tin cần thiết mà tôi cần. Tôi nghĩ rằng tôi phải tìm tất cả các tập tin tiêu đề cá nhân. –

6

Hãy thử

~$ whereis pcap 

Rồi như mata nói

gcc -lpcap -I{path} file.c 

nơi {path} là con đường mà whereis cho bạn, bạn sẽ chọn một với chuỗi pcap.h ở cuối (không có phần pcap.h).

+1

Nếu bạn thất vọng và không thấy giải pháp cho vấn đề của mình, bạn có thể thực hiện thêm một nỗ lực để đảm bảo rằng bạn đã cài đặt đúng thư viện. '~ $ find/usr/-iname '* .c' -hoặc '* .h' | grep -i pcap' – yeyo

+0

Tôi đã nhận được nó để làm việc, nhờ –

+0

@Dirk Tôi tin rằng vì nhận xét đầu tiên của tôi, cũng nhìn vào ngày của câu trả lời. – yeyo

10

thư viện của bạn có thể bị mất tích, cài đặt nó và liên kết nó

yum install libpcap-devel 

Trong makefile add bạn:

-L/usr/lib -lpcap 
+1

Trạng thái OP 'libpcap-devel' được cài đặt (cùng với' libpcap')! – Dirk

0

Để thực hiện chương trình trong C++:

cho C++ chương trình

g++ program_name.cpp -lpcap