C-编译错误

C-编译错误,c,build,compiler-errors,C,Build,Compiler Errors,如果我建立我的程序,它会给我很多错误和警告。所有内容都是从最高的源文件main.o编译而来的 ... ./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 [

如果我建立我的程序,它会给我很多错误和警告。所有内容都是从最高的源文件main.o编译而来的

...
./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

....
有人有正确的带有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 $@

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

depend: $(SRCS)
    makedepend $(INCLUDES) $^
CC=gcc
CFLAGS=-g-Wall$(shell包配置--CFLAGS glib-2.0)-D_uUNIX__
LFLAGS=-L/usr/include/x86_64-linux-gnu\
-L/usr/local/lib/\
-L/usr/include/x86_64-linux-gnu
SRCS=main.c\
流裂土器#\
/usr/include/glib-2.0/glib/gregex.h
OBJS=$(SRCS:.c=.o)
MAIN=收音机
包括=-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/本地/包括\
-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包配置--libs glib-2.0)
#-lavcodec-lavutil-lavformat-lpthread
全部:$(主)
@回显“我的makefile已完成”
$(主):$(OBJS)
$(CC)$(CFLAGS)$(包括)-o$(主)$(OBJS)$(LFLAGS)$(LIBS)
.c.o.:
$(CC)$(CFLAGS)$(包括)-c$<-o$@
清洁:
$(RM)*.o*~$(主)
依赖:$(SRC)
MakeDependent$(包括)$^
所有内容都是从最高的源文件main.o编译而来的

再次编译一个对象文件,或者将源文件命名为对象文件,这是一件奇怪的事情


.o通常是编译步骤中的.c文件。

发布您的源代码,否则我们无法帮助您<代码>*.o不是源文件,它们是已编译的目标文件。您无法再次编译它们。不知何故,您正在强制编译器将
main.o
(而不是
main.c
)解释为c程序。发布您的生成文件或生成脚本源文件中似乎有无效字符…源文件正常,我检查了它。我的英语有点问题。我将main.c构建到main.o,然后在上面终端打印错误和警告。
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 $@

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

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