Eclipse C / C ++ не предоставляет одинаковый путь включения для каждой компиляции модуля - PullRequest
0 голосов
/ 31 января 2019

Я использую atollic trueStudio, основанный на eclipse.

В моем проекте несколько файлов .c, .cpp и .h.Компилятор жалуется на «нет такого файла или каталога» для файла .h.Включенные пути заданы правильно.

Когда я смотрю на командные строки gcc для разных файлов .c.Я вижу, что eclipse не предоставляет одинаковые директивы include для всех файлов.

Вот скриншот из 2 командных строк для 2 .c файлов.Я заменил все пробелы на \ n для облегчения чтения и сделал разность.

enter image description here

Полные командные строки:

arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -std=gnu11 -D__weak=__attribute__((weak)) -DOS -D__packed=__attribute__((__packed__)) -DUSE_HAL_DRIVER -DSTM32F429xx -I../Inc -I../lib/com -I../drivers/Common -I../drivers/IOcy8C95xx -I../drivers/eeprom24C0x -I../drivers/l6474 -I../drivers/BSP -I../Inc/autogenerated/SGB -I../Inc/autogenerated/Params -I../imports/Drivers/STM32F4xx_HAL_Driver/Inc -I../imports/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../imports/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I../imports/Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../imports/Middlewares/Third_Party/FreeRTOS/Source/include -I../imports/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../imports/Drivers/CMSIS/Include -I../imports/inc -I../../../../../imports/inc -Ofast -g -fstack-usage -Wall -o drivers\eeprom24C0x\eeprom24C0x.o ..\drivers\eeprom24C0x\eeprom24C0x.c 
arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -std=gnu11 -D__weak=__attribute__((weak)) -DOS -D__packed=__attribute__((__packed__)) -DUSE_HAL_DRIVER -DSTM32F429xx -I../Inc -I../drivers/BSP -I../drivers/Common -I../drivers/l6474 -I../lib/com -I../Inc/autogenerated/SGB -I../imports/Drivers/STM32F4xx_HAL_Driver/Inc -I../imports/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../imports/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I../imports/Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../imports/Middlewares/Third_Party/FreeRTOS/Source/include -I../imports/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I../imports/Drivers/CMSIS/Include -Ofast -g -fstack-usage -Wall -o drivers\BSP\steppersMainBoard.o ..\drivers\BSP\steppersMainBoard.c 

В чем может быть причина?

Обновление 1

Оказывается, что в eclipse включаемые каталоги определены в каждом исходном каталоге.

Есть ли способ определить одну конфигурацию, которая может быть рекурсивно распространена на все исходные каталоги?

Спасибо

Julien

...