I am getting a compiler error that indicates that the compiler is viewing my include paths as input files. I am a bit stumped, since this seems to be sometimes caused by spaces in an include path throwing off the compiler, or include paths being placed in unexpected places in the project XML, but I have not seen either of those phenomenon.My include XML is defined here: <VariousControls> <MiscControls></MiscControls> <Define>USE_HAL_DRIVER,STM32F429xx</Define> <Undefine></Undefine> <IncludePath>..\..\..\..\source\nec_decoder;..\..\..\source\segment_display;..\..\application_source;..\..\application_source\board_specific;..\..\..\..\imported\STM32F4xx_HAL_Driver\Inc;..\..\..\..\imported\CMSIS\Device\ST\STM32F4xx\Include;..\..\..\..\imported\CMSIS\Include</IncludePath> </VariousControls> </Cads>The keil project itself lives at:"C:\NEC_Decoder_Phase_1\NEC_Decoder\application\nec_fan_app\toolchains\mdk\NEC_Decoder.uvprojx"The rest of the include paths are at:"C:\NEC_Decoder_Phase_1\NEC_Decoder\application\nec_fan_app\application_source""C:\NEC_Decoder_Phase_1\NEC_Decoder\application\nec_fan_app\application_source\board_specific""C:\NEC_Decoder_Phase_1\NEC_Decoder\source\nec_decoder""C:\NEC_Decoder_Phase_1\NEC_Decoder\source\segment_display""C:\NEC_Decoder_Phase_1\NEC_Decoder\imported\STM32F4xx_HAL_Driver\Inc""C:\NEC_Decoder_Phase_1\NEC_Decoder\imported\CMSIS\Include""C:\NEC_Decoder_Phase_1\NEC_Decoder\imported\CMSIS\Device\ST\STM32F4xx\Include"No matter which include path I put first in the XML, I get the same compiler error, like so:"Build target 'NEC_Decoder'compiling edge_capture.c...Error: C4065E: type of input file '..\..\..\..\source\nec_decoder' unknown"
Hello, if you open the Options view within MDK, and inspect the contents of C/C++ > Compiler control string (I find it easiest to copy to a text editor, as the viewing window is small), you can see the full command line used when building.Do these paths have -I before them? They should also be shown as a list of semi-colon separated paths in the Include Paths section.
Hi Ronan, thank for your response.My include paths for the compiler control setting are all preceded by a capital I. Attached is a text file of the compiler control settings:
--c99 -c --cpu Cortex-M4.fp -g -O1 --apcs=interwork --split_sections --asm --interleave --asm_dir -I ../../application_source -I ../../application_source/board_specific -I ../../../../source/segment_display -I ../../../../source/nec_decoder -I ../../../../imported/STM32F4xx_HAL_Driver/Inc -I ../../../../imported/CMSIS/Include -I ../../../../imported/CMSIS/Device/ST/STM32F4xx/Include -I./RTE/_NEC_Decoder -IC:/Keil_v524a/ARM/PACK/ARM/CMSIS/5.8.0/CMSIS/Core/Include -IC:/Keil_v524a/ARM/PACK/Keil/STM32F4xx_DFP/2.15.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="524" -D_RTE_ -DSTM32F429xx -DUSE_HAL_DRIVER -DSTM32F429xx -o NEC_Decoder\*.o --list_dir --list --omf_browse NEC_Decoder\*.crf --depend NEC_Decoder\*.d
Hmm... I can't see anything obviously wrong there :(If you invoke the compiler from the command line, what happens? Is it only on this edge_capture.c file, or is that simply the first one encountered?
armcc edge_capture.c <copy all the above settings here>
Ronan