컴파일 에러입니다.ㅡ.ㅜ
글쓴이: ar / 작성시간: 수, 2003/11/05 - 9:30오후
Quote:
gcc -g -c -O2 -Wall lilt.c
lilt.c: In function `set_ports':
lilt.c:219: warning: assignment makes integer from pointer without a cast
gcc -g -O2 -Wall -o lilt lilt.o -lpcap -lnet -lnids
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libnids.a(killtcp.o)(.text+0x10): In functio
n `raw_init':
/home/hermes/security/src/libnids-1.18/src/killtcp.c:55: undefined reference to `libnet_init'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libnids.a(killtcp.o)(.text+0x8c): In functio
n `nids_killtcp':
/home/hermes/security/src/libnids-1.18/src/killtcp.c:70: undefined reference to `libnet_build_
tcp'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libnids.a(killtcp.o)(.text+0xc0):/home/herme
s/security/src/libnids-1.18/src/killtcp.c:74: undefined reference to `libnet_build_ipv4'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libnids.a(killtcp.o)(.text+0xd3):/home/herme
s/security/src/libnids-1.18/src/killtcp.c:78: undefined reference to `libnet_write'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libnids.a(killtcp.o)(.text+0x112):/home/herm
es/security/src/libnids-1.18/src/killtcp.c:79: undefined reference to `libnet_build_tcp'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libnids.a(killtcp.o)(.text+0x146):/home/herm
es/security/src/libnids-1.18/src/killtcp.c:83: undefined reference to `libnet_build_ipv4'
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../libnids.a(killtcp.o)(.text+0x15f):/home/herm
es/security/src/libnids-1.18/src/killtcp.c:87: undefined reference to `libnet_write'
collect2: ld returned 1 exit status
make: *** [lilt] 오류 1
레뎃 9.0을 사용하구 있구요.. libnids 라이브러리를 사용하는 소스를 컴파일 하려구
하면 저렇게 에러가 뜹니다. libpcap는 rpm으로 설치되어 있었구요.. libnet 는
libnet.tar.gz 소스 받아서 설치하였습니다. 물론 libnids 라이브러리도 libnids-1.18.tar.gz
소스를 받아서 설치하였습니다.
/usr/local/lib 에 라이브러리들이 추가 되어 지더군요.
Quote:
# ls /usr/local/lib
libnet.a libnids.a
라이브러리들이 생성되었구요..
Quote:
# cat /etc/ld.so.conf
/usr/kerberos/lib
/usr/X11R6/lib
/usr/lib/sane
/usr/lib/qt-3.1/lib
/usr/local/lib
이렇게 /usr/local/lib 추가 시켜서 ldconfig 해주었거든요..
근데 왜 컴파일 할때 라이브러리를 찾을 수 없다는 메시지가
뜨는지 ㅡ.ㅜ
Forums:
Re: 컴파일 에러입니다.ㅡ.ㅜ
라이브러리를 사용하시려면
컴파일 옵션에 -l로 추가로 적어주셔야 합니다.
-lnids 같은 식으로요.
@ 워닝도 잡아주세요. ^^;
[code:1]gcc -g -O2 -Wall -o lilt lilt.o
gcc -g -O2 -Wall -o lilt lilt.o -lpcap -lnet -lnids -lnet
-lnet을 뒤에 추가해서 compile 해보세요. (mutually dependent 할 가능성 있음...)
just my $.02
의존성 문제였습니다. ^^ Makefile 에서 LIBS = -
의존성 문제였습니다. ^^ Makefile 에서
LIBS = -lpcap -lnet -lnids 를
LIBS = -lpcap -lnids -lnet 이렇게 바꾸니까
잘되네요. 답변 감사드립니다 ^^
댓글 달기