2014-11-24 25 views
5

Bu öğretici geçmesi çalışıyorum sahipPCAP fonksiyonları "tanımsız referansı"

sudo apt-get install libpcap-dev 

ve Şimdiye kadar aşağıdaki kod var (dosya adı example_pcap.c ise): gördüğüm birçok sorunun göre

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

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

    dev = pcap_lookupdev(errbuf); 

    return 0; 
} 

zaten bu kullanarak derlemek için şunları söyledi:

gcc -lpcap example_pcap.c -o example_pcap 

Hala aşağıdaki hatayı alıyorum Ancak: Komut satırının sonuna

example_pcap.c:(.text+0x32): undefined reference to `pcap_lookupdev' 
+1

@NTN 1. bağlayıcı hatalar genellikle ilgili olmayan görün başlık dosyaları ve 2. hata mesajı ** değil ** "kütüphane bulunamadı". Sorun, kütüphanenin yanlış yerde olmasıdır - kaynak dosyadan * sonra * olması gerekir. –

+0

Ohh evet, L/senin/yolu kullanabilirsiniz/gibi lib –

cevap

12
+1

bulmak için yeni bir yol eklemek için 'gcc example_pcap.c -o example_pcap -lpcap' (I' daha iyi bir adla bir yürütülebilir almak için -o eklendi a.out') – Jite

+0

Bu işe yaradı ama şimdi biraz kafam karıştı. Kursumun bir parçası olarak, bana zaten make dosyasını verdiler. Şimdi make dosyasında -lpcap parametresi var. Bir hata yaptılar mı yoksa başlangıçta kaldığından emin olmanın bir yolu var mı? –

+0

bağlama ../build/idsniff gcc -lpcap -lpthread -o ../build/idsniff ../build/analysis.o ../build/dispatch.o ../build/main.o ../build /sniff.o ../build/sniff.o: 'sniff' işlevinde: /home/yahya/workspace/osCoursework/src/sniff.c:15: 'pcap_open_live' için tanımsız başvuru ' /home/yahya/çalışma alanı/osCoursework/src/sniff.c: 27: 'pcap_next' tanımsız başvurusu ' /home/yahya/workspace/osCoursework/src/sniff.c:31:' pcap_geterr 'tanımsız başvuru' –