2013-06-16 1 views
0

프로그램을 빌드하면 많은 오류와 경고를 유발합니다. 모든 것은 컴파일 된 최상위 소스 파일 인 main.o에서옵니다.C - 컴파일 오류

... 
./main.o:16:819: warning: null character(s) ignored [enabled by default] 
./main.o:16:824: warning: null character(s) ignored [enabled by default] 
./main.o:16:829: warning: null character(s) ignored [enabled by default] 
./main.o:16:844: warning: null character(s) ignored [enabled by default] 
./main.o:16:854: warning: null character(s) ignored [enabled by default] 
./main.o:16:864: warning: null character(s) ignored [enabled by default] 
./main.o:16:886: error: too many decimal points in number 
./main.o:16:892: error: invalid suffix "ubuntu5" on integer constant 
./main.o:16:902: error: too many decimal points in number 
./main.o:16:907: warning: null character(s) ignored [enabled by default] 
./main.o:16:2: error: stray ‘\24’ in program 
./main.o:16:914: warning: null character(s) ignored [enabled by default] 
./main.o:16:2: error: stray ‘\1’ in program 
./main.o:16:924: warning: null character(s) ignored [enabled by default] 
./main.o:16:2: error: stray ‘\1’ in program 
./main.o:16:2: error: stray ‘\20’ in program 
./main.o:16:2: error: stray ‘\1’ in program 
./main.o:16:2: error: stray ‘\33’ in program 
./main.o:16:2: error: stray ‘\7’ in program 
./main.o:16:2: error: stray ‘\10’ in program 
./main.o:16:2: error: stray ‘\220’ in program 
./main.o:16:2: error: stray ‘\1’ in program 
./main.o:16:935: warning: null character(s) ignored [enabled by default] 
./main.o:16:2: error: stray ‘\34’ in program 
./main.o:16:938: warning: null character(s) ignored [enabled by default] 
./main.o:16:2: error: stray ‘\34’ in program 
./main.o:16:942: warning: null character(s) ignored [enabled by default] 
./main.o:16:950: warning: null character(s) ignored [enabled by default] 
./main.o:16:2: error: stray ‘\16’ in program 
./main.o:16:2: error: stray ‘\20’ in program 
./main.o:16:2: error: stray ‘\206’ in program 
./main.o:16:2: error: stray ‘\2’ in program 
In file included from <command-line>:0:0: 
./main.o:17:1: error: stray ‘\6’ in program 
./main.o:17:1: error: stray ‘\2’ in program 

.... 

어디에서 문제가있을 수 있습니까? 이러한 오류는 "-include"명령과 소스 파일 /usr/include/glib-2.0/glib/gregex.h가 makefile로 인해 발생합니다. 그러나이 명령을 제거하면 "undefined reference to ..."라는 오류 메시지가 표시됩니다. glib에서 선언합니다. 문제는 glib를 사용하는 것입니다. 시도 전 (효과 없음) :

INCLUDES = -I/usr/include/glib-2.0 \ 
     -I/usr/include/glib-2.0/glib 
LIBS :=  -lglib-2.0 

누구나 glib에서 올바른 makefile 명령을 사용하고 있습니까? 감사합니다

편집 : 인터넷 오디오 스트림을 녹음하기 위해 streamripper를 사용하는 프로그램을 만들고 싶습니다.

CC = gcc  
CFLAGS = -g -Wall $(shell pkg-config --cflags glib-2.0) -D__UNIX__ 
LFLAGS = -L/usr/include/x86_64-linux-gnu \ 
      -L/usr/local/lib/ \ 
      -L/usr/include/x86_64-linux-gnu 
SRCS = main.c \ 
     streamripper.C#\ 
     /usr/include/glib-2.0/glib/gregex.h 
OBJS = $(SRCS:.c=.o) 
MAIN = radio 
INCLUDES = -I/home/honza/workspace/Radio_processing/streamripper/libmad-0.15.1b \ 
      -I/usr/include \ 
      -I/usr/include/x86_64-linux-gnu \ 
      -I/usr/include/x86_64-linux-gnu/4.6/include \ 
      -I/usr/include/x86_64-linux-gnu/4.6/include-fixed \ 
      -I/usr/local/include \ 
      -I/usr/lib/x86_64-linux-gnu/glib-2.0/include \ 
      -I/usr/lib/x86_64-linux-gnu/glib-2.0 \ 
      -I/usr/include/glib-2.0 \ 
      -I/usr/include/glib-2.0/glib 
LIBS :=  -lm libmad.a libstreamripper.a -glib -lglib-2.0 \ 
      $(shell pkg-config --libs glib-2.0) 
      #-lavcodec -lavutil -lavformat -lpthread 

all: $(MAIN) 

    @echo 'My makefile finished' 

$(MAIN): $(OBJS) 
    $(CC) $(CFLAGS) $(INCLUDES) -o $(MAIN) $(OBJS) $(LFLAGS) $(LIBS) 

.c.o: 
    $(CC) $(CFLAGS) $(INCLUDES) -c $< -o [email protected] 

clean: 
    $(RM) *.o *~ $(MAIN) 

depend: $(SRCS) 
    makedepend $(INCLUDES) $^ 
+4

소스를 게시하십시오. 그렇지 않으면 Google에서 도와 드릴 수 없습니다. '* .o'는 소스 파일이 아니며 이미 컴파일 된 오브젝트 파일입니다. 다시 컴파일 할 수는 없습니다. – Femaref

+6

어떻게 든 컴파일러가 (main.c) 대신에'main.o'를 C 프로그램으로 해석하도록 강요하고 있습니다. –

+0

Makefile을 게시하거나 스크립트를 빌드 – eyalm

답변

1

모든 컴파일 가장 높은 소스 파일에서입니다 - main.o를 다시 객체 파일을 컴파일하기 위해, 또는 객체 파일과 같은 소스 파일의 이름을

이상한 것은.

.o 일반적으로 .c 파일을 사용하는 컴파일 단계에서 오는 것입니다.

+0

영어는 약간 문제가 있습니다. main.o에 main.c를 빌드 한 다음 터미널에 위의 경고와 경고를 출력했습니다. –