我用一个简单的“眨眼”示例开始我的项目,并使用它作为模板来编写我的代码。此示例仅使用一个源文件blink.c。最后,我想要一个使用多源文件的项目,但是我想不出如何配置CMakeLists.txt来编译这个项目。
我的CMakeLists.txt是:
cmake_minimum_required(VERSION 3.5)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(blink)例如,我想添加init.c。我尝试了不同的方法,但没有成功。
idf_component_register() / register_component()没有一个为我工作。
知道如何正确配置项目吗?
发布于 2021-06-21 07:49:12
对,ESP中的CMake项目层次结构有点棘手。您看错了CMakeLists.txt文件。而不是根目录中的一个,打开blink/main/CMakeLists.txt中的那个。该文件列出了"main“组件的源文件,该组件是您想要使用的。看起来是这样的:
idf_component_register(SRCS "blink.c" "init.c"
INCLUDE_DIRS ".")确保您的init.c文件与此CMakeLists.txt和blink.c位于同一个目录中。
我还建议看一下Espressif 构建系统文档,它非常有用。
发布于 2021-08-13 14:56:29
您应该编辑位于项目文件夹内的CMakeLists.txt文件夹中的main文件夹。此外,还需要将包含头文件的目录放入INCLUDE_DIRS参数中。
例如,如果项目中有这个文件结构(将init.h放在include文件夹中),如下所示:
blink/
├── main/
│ ├── include/
│ │ └── init.h
│ ├── blink.c
│ ├── CMakeLists.txt
│ ├── init.c
│ └── ...
├── CMakeLists.txt
└── ...您的main/CMakeLists.txt中的内容应该是:
idf_component_register(SRCS "blink.c" "init.c"
INCLUDE_DIRS "." "include")https://stackoverflow.com/questions/68063539
复制相似问题