ESP-IDF。 CMakeLists.txt 灾难

问题描述 投票:0回答:1

我有这样的架构:

ARGB2RGB/
├── CMakeLists.txt
└── src/
    ├── CMakeLists.txt
    ├── main.cpp
    └── STATIC/
        ├── CMakeLists.txt
        ├── SETTINGS/
        │   ├── SETTINGS.h
        │   └── SETTINGS.cpp

但不知道 - 在 CMakeLists.txt 中写什么

请帮助我。 我在 ESP-IDF DOCSCMAKE DOCS 阅读了信息以及示例。 但不知道在 CMakeLists.txt 中写什么。

我尝试了 ChatGPT4 - 但它也没有帮助。

这是我的 CMakeLists.txt。

ARGB2RGB/CMakeLists.txt

cmake_minimum_required(VERSION 3.5)

project(ARGB2RGB)

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

ARGB2RGB/src/CMakeLists.txt

idf_component_register(SRCS "main.cpp"
                    INCLUDE_DIRS "")
add_subdirectory(STATIC)

ARGB2RGB/src/STATIC/CMakeLists.txt

idf_component_register(SRCS "SETTINGS/SETTINGS.cpp"
                    INCLUDE_DIRS "SETTINGS")

ARGB2RGB/src/STATIC/SETTINGS/CMakeLists.txt

idf_component_register(SRCS "SETTINGS.cpp"
                    INCLUDE_DIRS ".")

你能帮我吗?

UPD1:

我尝试了@Codo 所说的,但我也没有编译。 我删除了所有 CMakeLists.txt,除了两个。

ARGB2RGB/CMakeLists.txt

cmake_minimum_required(VERSION 3.5)
project(ARDB2RGB)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)

ARGB2RGB/src/CMakeLists.txt

idf_component_register(SRCS "main.cpp"
                    INCLUDE_DIRS "")

target_sources(${COMPONENT_TARGET} PRIVATE "STATIC/SETTINGS/SETTINGS.cpp")
c++ cmake compilation esp-idf
1个回答
0
投票

工作设置可能如下所示(但这取决于包含路径的外观以及您实际上想要通过深层嵌套实现的目标)。

ARGB2RGB/src/CMakeLists.txt

idf_component_register(SRCS "main.cpp"
                    INCLUDE_DIRS "")

add_subdirectory(STATIC)

ARGB2RGB/src/static/CMakeLists.txt

set(src_files "static.cpp")
add_prefix(srcs "${CMAKE_CURRENT_LIST_DIR}/" "${srcs}")
target_include_directories(${COMPONENT_LIB} PUBLIC .)
target_sources(${COMPONENT_LIB} PRIVATE "${src_files}")

add_subdirectory(settings)

ARGB2RGB/src/static/settings/CMakeLists.txt

set(src_files "settings.cpp")
add_prefix(srcs "${CMAKE_CURRENT_LIST_DIR}/" "${srcs}")
target_include_directories(${COMPONENT_LIB} PUBLIC .)
target_sources(${COMPONENT_LIB} PRIVATE "${src_files}")

我使用小写名称,因为大写名称违反所有 C/C++ 约定。

© www.soinside.com 2019 - 2024. All rights reserved.