GNU make不包含头文件

时间:2018-10-16 20:28:26

标签: c embedded gnu-make

我已经搜索了6个小时,每次我尝试按main.o顺序编译时,我似乎都找不到这个GNU make文件的问题

make main.o

它给了我这个错误:

arm-none-eabi-gcc -c main.c -mcpu=cortex-m4 -mthumb -- 
specs=nosys.specs  -Wall -Werror -g -O0  -std=c99 -o main.o
main.c:23:22: fatal error: platform.h: No such file or directory
#include "platform.h"
                     ^
compilation terminated.
Makefile:52: recipe for target 'main.o' failed
make: *** [main.o] Error 1

makefile:

include sources.mk

# Platform Overrides
PLATFORM = MSP432

# Architectures Specific Flags
LINKER_FILE = msp432p401r.lds
CPU = cortex-m4
ARCH = thumb
SPECS = nosys.specs

# Compiler Flags and Defines
CC = arm-none-eabi-gcc
LD = arm-none-eabi-ld
TARGET = c1m1
LDFLAGS = -Wl,-Map=$(TARGET).map -T $(LINKER_FILE)
CFLAGS = -mcpu=$(CPU) -m$(ARCH) --specs=$(SPECS)  -Wall -Werror -g -O0  -std=c99
CPPFLAGs =


.PHONY: all
all: $(TARGET).out

.PHONY: clean
clean:  
    rm -f $(OBJS) $(TARGET).out $(TARGET).map

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

OBJS = $(SOURCES:.c=.o)

$(TARGET).out: $(OBJS)
    $(CC) $(OBJS) $(CFLAGS) $(LDFLAGS) -o $@

sources.mk:

# Add your Source files to this variable
SOURCES =./main.c \
    ./memory.c \
    ./startup_msp432p401r_gcc.c \
    ./system_msp432p401r.c  \
    ./interrupts_msp432p401r_gcc.c  



# Add your include paths to this variable
INCLUDES =-I./include/CMSIS \
    -I./include/common \
    -I./include/msp432

这是我在github上的代码:

github repository

1 个答案:

答案 0 :(得分:1)

您尚未在makefile的INCLUDES宏中使用CFLAGS宏。因此,arm-none-eabi-gcc ...命令行未指定编译器(或严格来说是预处理器)的包含路径。

CFLAGS = -mcpu=$(CPU) -m$(ARCH) --specs=$(SPECS) $(INCLUDES) -Wall -Werror -g -O0  -std=c99
                                                 ^^^^^^^^^^^