首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有多个源文件的ESP-IDF项目

带有多个源文件的ESP-IDF项目
EN

Stack Overflow用户
提问于 2021-06-21 06:53:30
回答 2查看 2.2K关注 0票数 3

我用一个简单的“眨眼”示例开始我的项目,并使用它作为模板来编写我的代码。此示例仅使用一个源文件blink.c。最后,我想要一个使用多源文件的项目,但是我想不出如何配置CMakeLists.txt来编译这个项目。

我的CMakeLists.txt是:

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.5)

include($ENV{IDF_PATH}/tools/cmake/project.cmake)

project(blink)

例如,我想添加init.c。我尝试了不同的方法,但没有成功。

idf_component_register() / register_component()没有一个为我工作。

知道如何正确配置项目吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-21 07:49:12

对,ESP中的CMake项目层次结构有点棘手。您看错了CMakeLists.txt文件。而不是根目录中的一个,打开blink/main/CMakeLists.txt中的那个。该文件列出了"main“组件的源文件,该组件是您想要使用的。看起来是这样的:

代码语言:javascript
复制
idf_component_register(SRCS "blink.c" "init.c"
                    INCLUDE_DIRS ".")

确保您的init.c文件与此CMakeLists.txtblink.c位于同一个目录中。

我还建议看一下Espressif 构建系统文档,它非常有用。

票数 4
EN

Stack Overflow用户

发布于 2021-08-13 14:56:29

您应该编辑位于项目文件夹内的CMakeLists.txt文件夹中的main文件夹。此外,还需要将包含头文件的目录放入INCLUDE_DIRS参数中。

例如,如果项目中有这个文件结构(将init.h放在include文件夹中),如下所示:

代码语言:javascript
复制
blink/
├── main/
│   ├── include/
│   │   └── init.h
│   ├── blink.c
│   ├── CMakeLists.txt
│   ├── init.c
│   └── ...
├── CMakeLists.txt
└── ...

您的main/CMakeLists.txt中的内容应该是:

代码语言:javascript
复制
idf_component_register(SRCS "blink.c" "init.c"
                    INCLUDE_DIRS "." "include")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68063539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档