OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5751|回复: 9

【求助】 仿着原子哥写的makefile 出了问题,但找不到原因

[复制链接]

5

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2020-1-10
在线时间
29 小时
发表于 2021-7-7 23:05:56 | 显示全部楼层 |阅读模式
1金钱
工程结构如下


makefile 是这样的:


结果:


最佳答案

查看完整内容[请看2#楼]

obj下有啥呢,这种报错往往最大可能是Makefile的路径和实际代码的路径不一致加上这个试试 VPATH := $(SRCDIRS)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

890

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2390
金钱
2390
注册时间
2019-9-25
在线时间
397 小时
发表于 2021-7-7 23:05:57 | 显示全部楼层
obj下有啥呢,这种报错往往最大可能是Makefile的路径和实际代码的路径不一致加上这个试试
VPATH                        := $(SRCDIRS)
回复

使用道具 举报

6

主题

200

帖子

0

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
1063
金钱
1063
注册时间
2019-9-19
在线时间
194 小时
发表于 2021-7-8 10:53:02 | 显示全部楼层
没图?
回复

使用道具 举报

5

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2020-1-10
在线时间
29 小时
 楼主| 发表于 2021-7-8 11:22:18 | 显示全部楼层
makefile (格式可以忽略)
CORESS_COMPILE      ?= arm-linux-gnueabihf-
TARGET_NAME         ?= led_bsp
ELF                 ?= $(TARGET_NAME).elf
BIN                 ?= $(TARGET_NAME).bin
DIS                 ?= $(TARGET_NAME).dis
CC                  := $(CORESS_COMPILE)gcc
LD                  := $(CORESS_COMPILE)ld
OBJCOPY             := $(CORESS_COMPILE)objcopy
OBJDUMP             := $(CORESS_COMPILE)objdump
FLAGS               := -Wall -g -nostdlib
CFLAGS              := -std=c99
INCDIRS             := imx6ull \
                       bsp/clk \
                       bsp/led \
                       common/delay
SRCDIRS             := main \
                    bsp/clk \
                    bsp/led \
                    common/delay                                 
INCLUDE             := $(patsubst %, -I %, $(INCDIRS))
SFILES              := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.S))
CFILES              := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c))
SFILENDIR           := $(notdir  $(SFILES))
CFILENDIR           := $(notdir  $(CFILES))
SOBJS               := $(patsubst %, obj/%, $(SFILENDIR:.S=.o))
COBJS               := $(patsubst %, obj/%, $(CFILENDIR:.c=.o))
OBJS                := $(SOBJS) $(COBJS)
$(BIN) : $(OBJS)
        $(LD) -Timx6ull.lds  -o $(ELF) $^
    $(OBJCOPY) -O binary -S $(ELF) $@
    $(OBJDUMP) -D -m arm $(ELF) > $(DIS)
$(SOBJS): obj/%.o : %.S
    $(CC) -Wall -nostdlib -c -O2  $(INCLUDE) -o $@ $<
$(COBJS): obj/%.o : %.c
    $(CC) -Wall -nostdlib -c -O2  $(INCLUDE) -o $@ $<
.PHONY : clean
clean:
    rm -rf $(OBJS) $(ELF) $(BIN) $(DIS)
回复

使用道具 举报

5

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2020-1-10
在线时间
29 小时
 楼主| 发表于 2021-7-8 11:23:06 | 显示全部楼层
结果:
make: *** No rule to make target 'start.S', needed by 'obj/start.o'.  Stop.
回复

使用道具 举报

5

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2020-1-10
在线时间
29 小时
 楼主| 发表于 2021-7-8 21:42:12 | 显示全部楼层

我直接粘贴的文字,不知道为啥没有
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2021-7-9 02:18:29 | 显示全部楼层
帮顶
回复

使用道具 举报

9

主题

890

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2390
金钱
2390
注册时间
2019-9-25
在线时间
397 小时
发表于 2021-7-10 10:17:04 | 显示全部楼层
obj文件夹下有啥?另外start.S的路径你核对一下,可能Makefile上写的start.S的路径和实际上你的start.S的路径不一致。一般都是路径问题导致的这种报错
回复

使用道具 举报

5

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2020-1-10
在线时间
29 小时
 楼主| 发表于 2021-7-10 21:33:16 | 显示全部楼层
仰望星空之云 发表于 2021-7-10 10:17
obj文件夹下有啥?另外start.S的路径你核对一下,可能Makefile上写的start.S的路径和实际上你的start.S的路 ...

obj 是生成.o 文件的,我这里是没有VPATH,之前学Makefile 时,没有VPATH 也是可以的,不过和原子哥的有些不同,没有写过 $(SOBJS): obj/%.o : %.S, 这样,直接是 $(SOBJS):  %.S,但是这个时候也行不通
回复

使用道具 举报

0

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2021-7-12
在线时间
7 小时
发表于 2021-7-14 09:42:18 | 显示全部楼层
看一下obj里面有哪些提示。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 18:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表