#c #eclipse #makefile #eclipse-cdt
#c #eclipse #makefile #eclipse-cdt
Вопрос:
Я создал проект с использованием Eclipse CDT на ARM. Многие настройки были изменены в Eclipse. Включите каталоги, параметры компилятора и т. Д…
Мне нужно сгенерировать makefile, который способен генерировать оправдываемое из командной строки.
Я заметил, что в каталоге Debug есть несколько файлов:
makefile
, objects.mk
, sources.mk
, subdir.mk
В каждом каталоге внутри Debug также есть subdir.mk
файл, так что, похоже, все на месте. Немного неудобно иметь так много файлов. Я бы предпочел иметь только один, поскольку он генерируется автоматически. Тем не менее, когда я пытаюсь использовать makefile, я получаю сообщение об ошибке:
[user@athena VDIU]$ make -f Debug/makefile
Building target: VDIU.elf
Invoking: GNU ARM Cross C Linker
arm-none-eabi-gcc -mcpu=cortex-m7 -mthumb -mfloat-abi=softfp -mfpu=fpv5-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -g3 -Xlinker --gc-sections -Xlinker --script="../../../config/linker-script-flash.ld" -Wl,-Map,"VDIU.map" -o "VDIU.elf"
/bin/sh: arm-none-eabi-gcc: command not found
Debug/makefile:64: recipe for target 'VDIU.elf' failed
make: *** [VDIU.elf] Error 127
Кажется, он жалуется на arm-none-eabi-gcc, хотя при компиляции в Eclipse все хорошо. (Вывод консоли компиляции в Eclipse довольно большой, но я показываю ниже только один из файлов)
Building file: ../VDIU_main.c
Invoking: GNU ARM Cross C Compiler
arm-none-eabi-gcc -mcpu=cortex-m7 -mthumb -mfloat-abi=softfp -mfpu=fpv5-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -g3 -D__SAME70Q21__ -D__FREERTOS__ -DARM_MATH_CM7=true -DBOARD=SAME70_XPLAINED -DDEBUG -Dprintf=iprintf -I../../../ -I../../../config -I../../../board -I../../../ASF -I../../../ASF/sam/boards -I../../../ASF/sam/boards/same70_xplained -I../../../ASF/sam/drivers/uart -I../../../ASF/sam/drivers/mpu -I../../../ASF/sam/drivers/pio -I../../../ASF/sam/drivers/usart -I../../../ASF/sam/drivers/pmc -I../../../ASF/sam/drivers/twihs -I../../../ASF/sam/utils -I../../../ASF/sam/utils/header_files -I../../../ASF/sam/utils/preprocessor -I../../../ASF/sam/utils/fpu -I../../../ASF/sam/utils/cmsis/same70/include/component -I../../../ASF/sam/utils/cmsis/same70/include -I../../../ASF/sam/utils/cmsis/same70/include/instance -I../../../ASF/sam/utils/cmsis/same70/include/pio -I../../../ASF/sam/utils/cmsis/same70/source/templates -I../../../ASF/common/utils -I../../../ASF/common/utils/interrupt -I../../../ASF/common/utils/stdio/stdio_serial -I../../../ASF/common/services/clock -I../../../ASF/common/services/clock/same70 -I../../../ASF/common/services/ioport -I../../../ASF/common/services/ioport/sam -I../../../ASF/common/services/serial -I../../../ASF/common/services/serial/sam_uart -I../../../ASF/common/services/gpio -I../../../ASF/common/services/gpio/sam_gpio -I../../../ASF/common/boards -I../../../ASF/thirdparty/freertos/freertos-10.0.0/Source/include -I../../../ASF/thirdparty/freertos/freertos-10.0.0/Source/portable/GCC/ARM_CM7/r0p1 -I../../../ASF/thirdparty/freertos/FreeRTOS-Plus-TCP/include -I../../../ASF/thirdparty/freertos/FreeRTOS-Plus-TCP/source/portable/Compiler/GCC -I../../../ASF/thirdparty/freertos/FreeRTOS-Plus-TCP/source/portable/NetworkInterface/include -I../../../ASF/thirdparty/freertos/FreeRTOS-Plus-TCP/source/portable/NetworkInterface/DriverSAM -I../../../ASF/thirdparty/CMSIS/Include -std=gnu11 -g -MMD -MP -MF"VDIU_main.d" -MT"VDIU_main.o" -c -o "VDIU_main.o" "../VDIU_main.c"
Finished building: ../VDIU_main.c
Комментарии:
1. На самом деле это не вопрос C.
2. arm-none-eabi-gcc отсутствует в вашей переменной PATH. Eclipse установит этот путь на основе выбранного набора инструментов.
3. Разве переменная PATH не должна быть установлена в makefile? Если это не так, то makefile никогда не сможет быть запущен сам по себе… Есть ли другой файл, который может быть создан Eclipse, который вызывает make после правильной настройки всех переменных среды?