[我进入《 STM32入门》一书-沃伦·盖伊。我尝试在Cygwin下构建源,但是即使makefile中指示了所需文件的路径,也找不到所需文件。文件夹libopencm3 / cm3 / scb.h中的文件位于路径:/ home / root / STM32 / stm32f103c8t6 / libopencm3 / include因此正确的路径应为/ home / root / STM32 / stm32f103c8t6 / libopencm3 / include / libopencm3 / cm3 / scb.h和I检查文件是否存在。
因此,我尝试将#include更改为#include“ file.h”,并将其包含在源文件夹中,并且具有所需的头文件-可以,但是在不同的源文件中有很多情况。
是否有任何建议可以解决此问题或找到解决方法?
非常感谢!
这是我从终端机得到的。
[~/STM32/stm32f103c8t6]
$ make
make -C rtos/libwwg
make[1]: Entering directory '/home/root/STM32/stm32f103c8t6/rtos/libwwg'
make -w -C ./src
make[2]: Entering directory '/home/root/STM32/stm32f103c8t6/rtos/libwwg/src'
arm-none-eabi-gcc -Os -g -std=c99 -mthumb -mcpu=cortex-m3 -msoft-float -mfix-cortex-m3-ldrd -Wextra -Wshadow -Wimplicit-function-declaration -Wredundant-decls -Wmissing-prototypes -Wstrict-prototypes -fno-common -ffunction-sections -fdata-sections -I/home/root/STM32/stm32f103c8t6/libopencm3/include -I/home/root/STM32/stm32f103c8t6//rtos/libwwg/include -I./rtos -I. -MD -Wall -Wundef -DSTM32F1 -I/home/root/STM32/stm32f103c8t6/libopencm3/include -I/home/root/STM32/stm32f103c8t6//rtos/libwwg/include -o usbcdc.o -c usbcdc.c
usbcdc.c:7:10: fatal error: libopencm3/cm3/scb.h: No such file or directory
7 | #include <libopencm3/cm3/scb.h>
| ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [../../../Makefile.incl:111: usbcdc.o] Error 1
make[2]: Leaving directory '/home/root/STM32/stm32f103c8t6/rtos/libwwg/src'
make[1]: *** [Makefile:8: all] Error 2
make[1]: Leaving directory '/home/root/STM32/stm32f103c8t6/rtos/libwwg'
make: *** [Makefile:41: libwwg] Error 2
所以,我知道问题的根源是什么。Cygwin中的路径格式存在问题,或者Windows和Linux路径格式之间的交互存在问题。我可以通过将Makefile中的路径从Linux / home / folder更改为Windows D:\ home \ folder \格式来解决此问题。