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组件可以很好地实现这一点,只是不知道如何实现这种风格。
任何帮助赞赏!
1条答案
按热度按时间vjhs03f71#
首先,如果你想使用组件本身之外的头文件,在组件的
CMakeLists.txt
中调用idf_component_register(...)
时,需要使用INCLUDE_DIRS
而不是PRIV_INCLUDE_DIRS
。更多信息,请参见IDF Build System组件命令文档页面。要启用包含头文件作为
driver/xxx.h
,您可以执行以下操作:在usb
,lcd
等中的每个中添加子文件夹driver
,将相应的头文件移动到那里并添加每个目录(usb
,lcd
等),在idf_component_register(...)
中使用INCLUDE_DIRS
。您的文件树如下所示:字符串
事实上,ESP-IDF本身的许多驱动程序头都是这样做的。