С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 02.08.2015
Сообщений: 69

MAKE не собирает проект

06.07.2020, 19:25. Показов 1364. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть проект под avr и stm32,все в одном make файле .
не получатся собрать прошику для stm32 . подскажите что не так .
общий make:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
###############################################################################
#
# Makefile for LXR firmware image
# Author: Patrick Dowling
#
# This makefile uses the subdirectory makefiles to build
# - cortex firmware image
# - AVR firmware image
# - FirmwareImageBuilder tool
# - Binary firmware image
#
# For the cross-platform builds, the necessary compilers (ARM, AVR) must either
# be in the path, or the installation directories can be specified using
#  ARM_TOOLKIT_ROOT
# and
#  AVR_TOOLKIT_ROOT
#
# TODO(pld) Additional build options can be specified using environment variables
#  DESTDIR : where final binary image is written
#  FIRMWARE : name of final binary image
#
###############################################################################
 
ifdef VERBOSE
AT :=
else
AT := @
endif
 
ARM_PATH=./mainboard/LxrStm32/
AVR_PATH=./front/LxrAvr/
BINPATH=./tools/bin/
DESTDIR?="./firmware\ image"/
 
ARM_BINARY=$(ARM_PATH)LxrStm32.bin
AVR_BINARY=$(AVR_PATH)LxrAvr.bin
FIB=$(BINPATH)FirmwareImageBuilder
FIRMWARE?=FIRMWARE.BIN
IMAGE?="$(DESTDIR)$(FIRMWARE)"
JOBS?=-j3
 
.PHONY: all
all:
    @echo "Valid targets are:"
    @echo " clean : clean subdirectories"
    @echo " firmware : build firmware"
 
.PHONY: clean
clean:
    $(AT)make -C tools/FirmwareImageBuilder clean
    $(AT)make -C $(AVR_PATH) clean
    $(AT)make -C $(ARM_PATH) clean
    $(AT)$(RM) $(IMAGE)
 
.PHONY: firmware
firmware: $(IMAGE)
 
$(IMAGE): $(ARM_BINARY) $(AVR_BINARY) $(FIB)
    @echo "Building final firmware image $@..."
    $(AT)$(FIB) $(ARM_BINARY) $(AVR_BINARY) "$@"
 
$(FIB):
    @echo "** Building $@..."
    $(AT)make -C tools/FirmwareImageBuilder exe
 
$(AVR_BINARY):
    @echo "** Building $@..."
    $(AT)make $(JOBS) -C $(AVR_PATH) avr
 
$(ARM_BINARY):
    @echo "** Building $@..."
    $(AT)make $(JOBS) -C $(ARM_PATH) stm32
далее идет второй make файл и на нем затык :
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
###############################################################################
#
# Makefile for LXR Cortex firmware
# Author: Patrick Dowling
#
# Requires either
# * arm compiler (arm-none-eabi-gcc et al) in path, or
# * ARM_TOOLKIT_ROOT set to installation directory
#
###############################################################################
 
###############################################################################
# OPTIONS
 
BINARY?=LxrStm32.bin
 
ifeq ($(DEBUG),1)
DEFINES += -DDEBUG
else
DEFINES += -DNDEBUG
endif
 
ifndef ARM_OPTIMIZE
ARM_OPTIMIZE=3
#ARM_OPTIMIZE=fast
endif
 
# if VERBOSE is defined, spam output
ifdef VERBOSE
AT :=
ECHO := @true
LDFLAGS += -v
else
AT := @
ECHO := @echo
endif
 
ifdef ARM_TOOLKIT_ROOT
BINPATH=$(ARM_TOOLKIT_ROOT)/bin/
else
BINPATH=""
endif
 
CC  =$(addprefix $(BINPATH),arm-none-eabi-gcc)
CXX =$(addprefix $(BINPATH),arm-none-eabi-c++)
LD  =$(addprefix $(BINPATH),arm-none-eabi-ld)
CP  =$(addprefix $(BINPATH),arm-none-eabi-objcopy)
OD  =$(addprefix $(BINPATH),arm-none-eabi-objdump)
AS  =$(addprefix $(BINPATH),arm-none-eabi-as)
 
###############################################################################
# SOURCE FILES
SRCDIR=.
CCSRCFILES  = $(shell find $(SRCDIR) -type f -name "*.c" | grep -v '/\.')
CXXSRCFILES = $(shell find $(SRCDIR) -type f -name "*.cpp" | grep -v '/\.')
ASSRCFILES  = $(shell find $(SRCDIR) -type f -name "*.S" | grep -v '/\.')
 
vpath %.c ./Libraries/STM32_USB_Device_Library/Core/src
vpath %.c ./Libraries/STM32_USB_OTG_Driver/src
vpath %.c ./Libraries/STM32F4xx_StdPeriph_Driver/src
vpath %.c ./src
vpath %.S ./src
vpath %.c ./src/AudioCodecManager
vpath %.c ./src/DSPAudio
vpath %.c ./src/Hardware
vpath %.c ./src/Hardware/SD_FAT
vpath %.c ./src/Hardware/USB
vpath %.c ./src/MIDI
vpath %.c ./src/SampleRom
vpath %.c ./src/Sequencer 
 
###############################################################################
# SETUP
 
OBJDIR=./build/
 
ELF=$(OBJDIR)/LxrStm32.elf
 
# Build object files from source...
OBJFILES = $(addprefix $(OBJDIR),$(notdir $(CCSRCFILES:.c=.o)))
OBJFILES+= $(addprefix $(OBJDIR),$(notdir $(CXXSRCFILES:.cpp=.o)))
OBJFILES+= $(addprefix $(OBJDIR),$(notdir $(ASSRCFILES:.S=.o)))
 
# Project defines
DEFINES += -DHSE_VALUE=8000000 -DSTM32F4XX -DUSE_STDPERIPH_DRIVER -DUSE_STM32F4_DISCOVERY
 
# Include directories
INCLUDES += -I"./Libraries/CMSIS/Include"
INCLUDES += -I"./Libraries/Device/STM32F4xx/Include"
INCLUDES += -I"./Libraries/STM32F4xx_StdPeriph_Driver/inc"
INCLUDES += -I"./Libraries/STM32_USB_Device_Library/Core/inc"
INCLUDES += -I"./Libraries/STM32_USB_OTG_Driver/inc"
INCLUDES += -I"./src"
INCLUDES += -I"./src/AudioCodecManager"
INCLUDES += -I"./src/DSPAudio"
INCLUDES += -I"./src/Hardware"
INCLUDES += -I"./src/Hardware/SD_FAT"
INCLUDES += -I"./src/Hardware/USB"
INCLUDES += -I"./src/MIDI"
INCLUDES += -I"./src/Sequencer" 
 
ARCHFLAGS = -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 
 
CFLAGS += $(DEFINES) $(INCLUDES)
CFLAGS += $(ARCHFLAGS)
CFLAGS += -O$(ARM_OPTIMIZE) -ffunction-sections -fdata-sections -ffast-math -freciprocal-math -fsingle-precision-constant -fmessage-length=0 -fno-gcse
CFLAGS += -Wall -Wextra -c 
CFLAGS += -Wl,--gc-sections
ifeq ($(PEDANTIC),1)
CFLAGS += -Werror
endif
CXXFLAGS += $(CFLAGS) -fno-rtti -fno-exceptions
 
ASFLAGS += -ahls $(ARCHFLAGS)
LDFLAGS += $(ARCHFLAGS) -Wl,--gc-sections --specs=nano.specs
LDFLAGS += -T./stm32_flash.ld
 
###############################################################################
# TARGETS
 
.PHONY: all
all:
    @echo "Valid targets are"
    @echo " clean : clean build directory"
    @echo " stm32: build LXR STM32 firmware"
 
 
.PHONY: clean
clean:
    @$(RM) $(BINARY)
    @$(RM) $(OBJDIR)*.o
 
.PHONY: printenv
printenv:
    @echo "AVR_TOOLKIT_ROOT='$(AVR_TOOLKIT_ROOT)'"
    @echo "CC  = $(CC)"
    @echo "CXX = $(CXX)"
    @echo "AS  = $(AS)"
 
.PHONY: printfiles
printfiles:
    @echo "** C FILES **"
    @echo "$(CCSRCFILES)"
    @echo ""
 
    @echo "** CXX FILES **"
    @echo "$(CXXSRCFILES)"
    @echo ""
 
    @echo "** S FILES **"
    @echo "$(ASSRCFILES)"
    @echo ""
 
.PHONY: stm32
stm32: $(BINARY)
 
$(ELF): $(OBJFILES)
    $(ECHO) "Linking $@..."
    $(AT)$(CXX) $(LDFLAGS) $^ -o $@
 
$(BINARY): $(ELF)
    $(ECHO) "Creating binary $@..."
    $(AT)$(CP) -O binary $(ELF) $(BINARY)
 
$(OBJFILES) : | $(OBJDIR)
 
###############################################################################
# BUILD RULES
 
$(OBJDIR):
    @mkdir -p $(OBJDIR)
 
$(OBJDIR)%.o: %.c
    $(ECHO) "Compiling $<..."
    $(AT)$(CC) $(CFLAGS) $< -o $@
 
$(OBJDIR)%.o: %.cxx
    $(ECHO) "Compiling $<..."
    $(AT)$(CXX) $(CFLAGS) $< -o $@
 
$(OBJDIR)%.o: %.S
    $(ECHO) "Assembling $<..."
    $(AT)$(AS) $(ASFLAGS) $< -o $@ > $@.lst
 
# Automatic dependency generation
CFLAGS += -MMD
-include $(OBJFILES:.o=.d)
вот результат
https://prnt.sc/tcv6oq
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.07.2020, 19:25
Ответы с готовыми решениями:

В Ubuntu Qt Creator не собирает проект: cannot find -lpulse
Ubuntu 16.04 LTS x64 Скачал QtCreator. Создаю чистый проект. Сначало проект не собирался и выдавал 1 ошибку: cannot find -lGL, в ответ...

make / mingw32-make - сравнение скорости в многопоточном режиме (-j)
в MinGW + MSYS имеются такие файлы для сборки программ с помощью Makefile: Alex@tycoon-851de03e /home $ make -v GNU Make 3.81 ...

Make & windows - или как собрать Qt проект в windows?
Добрый день всем. У меня такой вопрос: написал я небольшую программку. Писал под линуксом - там все ровно и красиво qmake -project ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.07.2020, 19:25
Помогаю со студенческими работами здесь

Почему экзешник make.exe (вернее, его разновидность mingw32-make.exe) принимает неизвестные параметры?
Друзья! У меня есть одна из сборок mingw, а там, как известно файл make.exe отсутствует, а вместо него есть файл mingw32-make.exe Суть...

Не компилирует, и не собирает проект - тест
Не компилирует, и не собирает проект - тест. Почему не могу понять, подскажите пожалуйста.

Gradle очень долго собирает проект
Столкнулся с проблемой при сборке android проекта. Gradle очень долго собирает проект и это невыносимо. Маленькие и простые проекты...

Webpack собирает проект, а приложение говорит что мои конструкторы не конструкторы
Помогите пожалуйста, в едином файле (не билде) всё работает хорошо, как только начинаю отделять классы и создавать билд, сразу ошибка в...

[Gentoo] Не могу запустить make: No rule to make target
Любой вызов make возвращает make: *** No rule to make target при запуске ./configure выводит bash: ./configure: No such file or...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru