【发布时间】:2018-06-22 14:52:16
【问题描述】:
我正在尝试将源代码编译成二进制。
在两个源文件中,main 函数定义在一个(main.c) 中。但是,在将我的源代码编译成二进制文件时,我仍然收到以下错误。
这是我的 Makefile:
CC = gcc
LD = ld
AR = ar
NM = nm
OBJCOPY = objcopy
OBJDUMP = objdump
READELF = readelf
CFLAGS += -Wall -I.
LDADD += -lpthread -ldl -L. -llob
BINARY=test
.PHONY: all
all: $(BINARY)
main.o: main.c
$(CC) $(CFLAGS) -c -o $@ $<
sub.o: sub.c
$(CC) $(CFLAGS) -c -o $@ $<
$(BINARY): sub.o main.o
$(CC) $(CFLAGS) $(LDADD) -o $@ $<
.PHONY: clean
clean:
rm -f $(OBJS) $(BINARY)
这会返回错误:
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o:在函数_start':
(.text+0x20): undefined reference tomain'
collect2: error: ld 返回 1 个退出状态
请指教!
【问题讨论】: