我正在使用以下 vpath 来尝试定位我的 $(OBJ) 文件:
vpath %.o ./lib/obj
我的目标是这样设置的:
# Link target
link:
@echo "\nLinking files"
$(CC) $(LINK_FLAGS) -o main.elf $(OBJS)
查看输出时,我得到(对于所有 *.o 文件):
...error: misc.o: No such file or directory
我的项目结构如下:
.
├── Makefile
├── inc
│ └── main.h
├── lib
│ ├── inc
│ │ ├── cmsis
│ │ │ ├── arm_common_tables.h
│ │ │ ├── ...
│ │ ├── peripherals
│ │ │ ├── misc.h
│ │ │ ├── ...
│ │ └── stm32f4xx
│ │ ├── stm32f4xx.h
│ │ ├── ...
│ ├── obj
│ │ ├── misc.o
│ ├── src
│ │ ├── peripherals
│ │ │ ├── misc.c
│ │ │ ├── ...
│ │ └── system_stm32f4xx.c
│ └── startup_stm32f4xx.s
├── src
│ └── main.c
└── stm32f4.ld
为什么找不到我的 .o 文件?
完整输出供参考:
arm-none-eabi-gcc -T"stm32f3.ld" -nostartfiles -Wl,-Map,"main.map" -mcpu=cortex-m4 -mthumb -g3 -gdwarf-2 -L"./" -o main .elf misc.o stm32f4xx_adc.o stm32f4xx_can.o stm32f4xx_crc.o stm32f4xx_cryp.o stm32f4xx_cryp_aes.o stm32f4xx_cryp_des.o stm32f4xx_cryp_tdes.o stm32f4xx_dac.o stm32f4xx_dbgmcu.o stm32f4xx_dcmi.o stm32f4xx_dma.o stm32f4xx_exti.o stm32f4xx_flash.o stm32f4xx_fsmc.o stm32f4xx_gpio.o stm32f4xx_hash.o stm32f4xx_hash_md5.o stm32f4xx_hash_sha1.o stm32f4xx_i2c.o stm32f4xx_iwdg.o stm32f4xx_pwr.o stm32f4xx_rcc.o stm32f4xx_rng.o stm32f4xx_rtc.o stm32f4xx_sdio.o stm32f4xx_spi.o stm32f4xx_syscfg.o stm32f4xx_tim.o stm32f4xx_usart.o stm32f4xx_wwdg.o system_stm32f4xx.o