代码make后出现的错误----为什么会出现这个错误,怎么改?

在使用Makefile进行项目编译时遇到错误。Makefile定义了编译规则,包括CC变量设置为gcc,CFLAGS包含调试标志,以及目标文件和头文件列表。在编译源文件为.o的目标文件时,遇到问题。'source_db.o'的编译似乎出现问题,可能由于源文件缺失或不匹配。在构建clink程序时,依赖于所有.o文件,并链接math库。另外,Makefile中包含了创建tar归档文件的规则。错误可能源于source_db.c文件未找到或未包含在FILES列表中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

joyce@ubuntu:/mnt/hgfs/Share_With_Ubuntu/clink_test$ make
gcc -g -D_GNU_SOURCE -c collect.c
/tmp/ccrRmuk9.s: Assembler messages:
/tmp/ccrRmuk9.s:4556: Fatal error: can't write collect.o: Illegal seek
as: BFD (GNU Binutils for Ubuntu) 2.21.0.20110327 assertion fail ../../bfd/elf.c:2522
as: BFD (GNU Binutils for Ubuntu) 2.21.0.20110327 assertion fail ../../bfd/elf.c:2522
as: BFD (GNU Binutils for Ubuntu) 2.21.0.20110327 assertion fail ../../bfd/elf.c:2522
as: BFD (GNU Binutils for Ubuntu) 2.21.0.20110327 assertion fail ../../bfd/elf.c:2522
as: BFD (GNU Binutils for Ubuntu) 2.21.0.20110327 assertion fail ../../bfd/elf.c:2522
as: BFD (GNU Binutils for Ubuntu) 2.21.0.20110327 assertion fail ../../bfd/elf.c:2522
as: BFD (GNU Binutils for Ubuntu) 2.21.0.20110327 assertion fail ../../bfd/elf.c:2522
/tmp/ccrRmuk9.s:4556: Fatal error: can't close collect.o: Illegal seek
make: *** [collect.o] Error 1


makefile内容如下:

CC     = gcc
CFLAGS = -g -D_GNU_SOURCE
LFLAGS =
OFILES = collect.o process.o util.o source_db.o
HEADERS = clink.h

FILES = COPYRIGHT Makefile clink.doc clink.h collect.c process.c util.c  source_db.c

%.o: %.c $(HEADERS)
    $(CC) $(CFLAGS) -c $<

clink: $(OFILES)
    $(CC) $(LFLAGS) -o clink $(OFILES) -lm

tar:
    rm -f clink.1.0/*
    cp $(FILES) clink.1.0
    tar -cvf clink.1.0.tar clink.1.0
    tar -czf clink.1.0.tar.gz clink.1.0



注意:makefile中source_db的部分是我自己加的,请小板车指点为什么会出现这个错误

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值