1) ls 명령어로 라이브러리 디렉토리 살펴보기
$ ls -l /usr/lib/*pcap*
or
$ ls -l /usr/lib/i386*/*pcap*
/usr/lib/i386-linux-gnu/libpcap.so.0.8
/usr/lib/i386-linux-gnu/libpcap.so
/usr/lib/i386-linux-gnu/libpcap.a
/usr/lib/i386-linux-gnu/libpcap.so.1.1.1
이 상황은 시스템에 따라 많이 달라질 수 있으므로, find 를 이용해 검색해 보아도 된다. 여기 예에서는 1.1.1 버전과 0.8 버전이 있는 것으로 추정할 수 있다.
2) 패키지 프로그램을 이용해 확인하기
rpm 을 사용한다면 다음과 같이 pcap 문자열로 확인해 본다.
$ rpm -qa | grep pcap
데비안 계열이라면
$ apt-cache pkgnames | grep pcap
를 통해 설치되어 있는 패키지를 확인하고 출력되는 패키지 이름을 보고
$ apt-cache showpkg libpcap-dev
와 같이 세부적으로 살펴볼 수 있다.
3) ldconfig 를 통해 라이브러리 링크 연결을 확인해 본다.
$ ldconfig -p | grep pcap
4) libpcap 라이브러리를 이용해 직접 버전을 출력해 본다.
다음과 같이 pcap_lib_version() 을 이용하면 버전이 확인가능하다. 아래와 같이 간단하게 코딩하여 실행해 볼 수 있다.
#include <pcap/pcap.h>
int main() {
const char *pcap_v;
pcap_v = pcap_lib_version();
printf("Libpcap Version: %s \n", pcap_v);
}
# ./a.out
Libpcap Version: libpcap version 1.1.1
1.1.1 버전을 사용하고 있음을 확인할 수 있다.
안녕하세요^^ 제가 libpcap 소스 컴파일 하려고 하는데 pcap/pcap.h: 그런 파일이나 디렉터리가 없습니다 compilation terminated.
답글삭제이렇게 뜨네요.
위에 버젼 확인하는 소스 쳐서 컴파일 해도 같은 문구가 뜨구요
제꺼 버전은 확인 해보니까 libpcap.so.1.1.1
이렇게 뜹니다. 뭐가 문제일까요 조언좀 부탁드립니다 ^^
libpcap 자체를 컴파일 하신 건가요? 아니면 libpcap 을 이용한 프로그램을 만들고 컴파일 하신건가요? libpcap 자체를 컴파일 하시는 거라면 pcap/pcap.h 가 나올거 같지 않은데요. 그리고 버전이 1.1.1 있다고 하시는거 보면 이미 설치가 되어 있고 libpcap 이용해서 컴파일 하시려는걸로 생각됩니다. 해당 헤더파일과 라이브러리 경로는 올바르게 지정하셨는지요? 컴파일시 -I 로 헤더 파일 경로를 지정하면 크게 문제 없어보입니다.
삭제