openwrt에서 pcap.h을 사용해서 컴파일 하는데 에러나 나요.
openwrt에서 pcap.h를 쓸려고 하는데 에러가 나서 질문 올립니당.
소스코드는 이거고요
#include
#include
#include //libpcap 헤더 포험
#include
#include
#include
#include
int main(int argc, char **argv)
{
char *dev; // 사용중인 네트웍 디바이스 이름
char *net; // 네트웍 어드레스
char *mask; // 네트웍 mask 어드레스
int ret; //
char errbuf[PCAP_ERRBUF_SIZE];
bpf_u_int32 netp; // ip
bpf_u_int32 maskp; // submet mask
struct in_addr addr;
// 네트웍 디바이스 이름을 얻어온다.
dev = pcap_lookupdev(errbuf);
// 에러가 발생했을경우
if(dev == NULL)
{
printf("%s\n",errbuf);
exit(1);
}
// 네트웍 디바이스 이름 출력
printf("DEV: %s\n",dev);
// 네트웍 디바이스 이름 dev 에 대한
// mask, ip 정보 얻어오기
ret = pcap_lookupnet(dev,&netp,&maskp,errbuf);
if(ret == -1)
{
printf("%s\n",errbuf);
exit(1);
}
// 네트웍 어드레스를 점박이 3형제 스타일로
addr.s_addr = netp;
net = inet_ntoa(addr);
if(net == NULL)
{
perror("inet_ntoa");
exit(1);
}
printf("NET: %s\n",net);
// 마찬가지로 mask 어드레스를 점박이 3형제 스타일로
addr.s_addr = maskp;
mask = inet_ntoa(addr);
if(mask == NULL)
{
perror("inet_ntoa");
exit(1);
}
printf("MASK: %s\n",mask);
return 0;
}
컴파일은 이렇게 하고요
/home/uj100/backfire/staging_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/mips-openwrt-linux-gcc -o pcap_tar pcap.c -lpcap
에러메시지는 이렇게 나옵니다.
4.3.3+cs_uClibc-0.9.30.1/usr/bin/mips-openwrt-linux-gcc -o pcap_tar pcap.c -lpcap
/home/uj100/backfire/staging_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib/gcc/mips-openwrt-linux-uclibc/4.3.3/../../../../mips-openwrt-linux-uclibc/bin/ld: cannot find -lpcap
collect2: ld returned 1 exit status
도움 부탁드려요 ㅜ
링크 에러네요.
libpcap.so.* 혹은 libpcap.a 파일이 library path(/usr/lib 같은 directory)에 존재하는지 확인해 보세요.
www.gilgil.net
다른 질문인데요..
저 소스가 그냥 gcc를 사용하면 컴파일이 잘되는데 openwrt gcc를 사용하면 에러가 납니다.
libpcap이 openwrt용이 따로 있는건가요?
다른질문인데요
openwrt에서 pcap을 사용해서 소스를 짜고 컴파일하려면, pcap이 openwrt용이어야하나요? 아님 tcpdump.org에서 받은 거 설치해서 사용해도 되는건가요?
댓글 달기