GNU make не включает заголовочный файл - PullRequest
0 голосов
/ 16 октября 2018

Я искал 6 часов, и я не могу найти проблему с этим файлом GNU make, каждый раз, когда я пытаюсь скомпилировать по main.o в порядке

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

1 Ответ

0 голосов
/ 17 октября 2018

Вы не использовали макрос INCLUDES в макросе CFLAGS make-файла.Следовательно, в командной строке arm-none-eabi-gcc ... не указываются пути включения к компилятору (или строго к препроцессору).

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