CMAKE & ESP IDF:如何将组件包含为XML?

wlp8pajw  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(54)

My project项目looks容貌like this,

.components
...drivers
......usb
........usb.c
........usb.h
......lcd
......etc
.main
...main.c

字符串
在main.c中,我希望包含库作为

#include "drivers/usb.h"
#include "drivers/lcd.h"


如何配置CMake以包含组件,但将组件本身作为文件夹包含?
我已经尝试过将数据包包含为PRIV_INCLUDE_DIRS,但它的工作原理是这样的,

#include "usb/usb.h"


而不是

#include "component/sourcefile.h"


像驱动程序和FreeRTOS这样的esp-idf组件可以很好地实现这一点,只是不知道如何实现这种风格。
任何帮助赞赏!

vjhs03f7

vjhs03f71#

首先,如果你想使用组件本身之外的头文件,在组件的CMakeLists.txt中调用idf_component_register(...)时,需要使用INCLUDE_DIRS而不是PRIV_INCLUDE_DIRS。更多信息,请参见IDF Build System组件命令文档页面。
要启用包含头文件作为driver/xxx.h,您可以执行以下操作:在usblcd等中的每个中添加子文件夹driver,将相应的头文件移动到那里并添加每个目录(usblcd等),在idf_component_register(...)中使用INCLUDE_DIRS。您的文件树如下所示:

.components
...drivers
......usb
........usb.c
........driver
..........usb.h
......lcd
........driver
..........lcd.h (not present above, but requested in your code example)
......etc
.main
...main.c

字符串
事实上,ESP-IDF本身的许多驱动程序头都是这样做的。

相关问题