make 컴파일시 질문입니다.
리눅스 프로그래밍 초보 입니다.. 다름이 아니라, 프로그램을 만들고, make로 gcc 컴파일할때 에러가 발생해서 글을 올립니다.
구글이나 다른 사이트에서 찾아보고, 적용해도, 해결이 되질 않네요... 고수님들의 조언을 부탁 드립니다.
아래는 make파일 내용 입니다..
CC = gcc
#CFLAGS = -g -O2 -W -Wall
CFLAGS = -v -w -g -W -Wall -O2
LIB = -lpthread
rtpcontrol : rtcp.c rtcp_event.c rtcp_packethandling.c rtcp_recv.c rtcp_utils.c rtp_buffer.c rtp_payload_type.c rtp_recv.c rtp_session.c rtp_ssrc_queue.c rtp_thread.c rtp_transport.c timeval.c bufferpool/bpstate.c parser/rtpparsers.c parser/rtp_h263.c parser/rtp_h264.c parser/rtp_m4v.c parser/rtp_mpa.c parser/rtp_mpv.c parser/rtp_speex.c parser/rtp_theora.c parser/rtp_aac.c parser/rtp_vorbis.c include/nms_header.c include/nms_printf.c include/nms_sock.c include/random32.c parser/rtp_utils.c
$(CC) $(CFLAGS) -o $@ $^ $(LIB)
clean :
@rm -rf *.o rtpcontrol
==========================================================================================================================================
make 후 에러 메세지 입니다..
/RTP_RTCP_Controller/rtcp_recv.c:122: multiple definition of `rtcp_parse_pkt'
/tmp/ccqAqCh8.o:/RTP_RTCP_Controller/rtcp_packethandling.c:135: first defined here
/tmp/ccqcT7y8.o: In function `rtcp_recv':
/RTP_RTCP_Controller/rtcp_recv.c:54: multiple definition of `rtcp_recv'
/tmp/ccqAqCh8.o:/RTP_RTCP_Controller/rtcp_packethandling.c:64: first defined here
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
/tmp/ccUlEVE3.o: In function `rtp_recv':
/RTP_RTCP_Controller/rtp_recv.c:221: undefined reference to `playout_add'
/tmp/ccMhPJd6.o: In function `rtp_session_get_ssrc':
/RTP_RTCP_Controller/rtp_session.c:87: undefined reference to `rtsp_get_rtp_queue'
/tmp/cc7J7gmd.o: In function `rtp_ssrc_check':
/RTP_RTCP_Controller/rtp_ssrc_queue.c:160: undefined reference to `playout_init'
/RTP_RTCP_Controller/rtp_ssrc_queue.c:253: undefined reference to `playout_init'
/tmp/ccfpJqlD.o: In function `rtp_parser_reg':
/RTP_RTCP_Controller/parser/rtpparsers.c:93: undefined reference to `rtp_parser_mpa'
/tmp/ccfpJqlD.o: In function `rtp_parsers_init':
/RTP_RTCP_Controller/parser/rtpparsers.c:77: undefined reference to `rtp_parser_mpa'
/tmp/ccfpJqlD.o:(.rodata+0x0): undefined reference to `rtp_parser_mpa'
/tmp/ccfpJqlD.o:(.rodata+0x4): undefined reference to `rtp_parser_mpv'
/tmp/ccfpJqlD.o:(.rodata+0x8): undefined reference to `rtp_parser_h264'
/tmp/ccfpJqlD.o:(.rodata+0xc): undefined reference to `rtp_parser_h263'
/tmp/ccfpJqlD.o:(.rodata+0x10): undefined reference to `rtp_parser_speex'
/tmp/ccfpJqlD.o:(.rodata+0x14): undefined reference to `rtp_parser_theora'
/tmp/ccfpJqlD.o:(.rodata+0x18): undefined reference to `rtp_parser_vorbis'
/tmp/ccfpJqlD.o:(.rodata+0x1c): undefined reference to `rtp_parser_m4v'
/tmp/ccfpJqlD.o:(.rodata+0x20): undefined reference to `rtp_parser_aac'
collect2: ld returned 1 exit status
make: *** [rtpcontrol] Error 1
Makefile을 컴파일
Makefile을 컴파일 단계와 링크단계로 보다 세분화해서 다시 잘~ 만드는것을 권장합니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
댓글 달기