프로그램을 빌드하면 많은 오류와 경고를 유발합니다. 모든 것은 컴파일 된 최상위 소스 파일 인 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) $^
소스를 게시하십시오. 그렇지 않으면 Google에서 도와 드릴 수 없습니다. '* .o'는 소스 파일이 아니며 이미 컴파일 된 오브젝트 파일입니다. 다시 컴파일 할 수는 없습니다. – Femaref
어떻게 든 컴파일러가 (main.c) 대신에'main.o'를 C 프로그램으로 해석하도록 강요하고 있습니다. –
Makefile을 게시하거나 스크립트를 빌드 – eyalm