如何在 ESP-IDF 中编译示例

How can I compile example in ESP-IDF

提问人:Daniel 提问时间:6/22/2022 最后编辑:Daniel 更新时间:6/22/2022 访问量:587

问:

我已经安装了 esp-idf,我正在尝试编译示例 build_system/cmake/idf_as_lib 我在 ESP-IDF CMD 中遇到了错误,这不允许我编译该示例。Visual Studio Code 中也存在同样的问题。

也许我应该设置环境路径CMAKE_C_COMPILER但我不知道我应该指出什么。 我已经在我的 Windows 上安装了 CMAKE

我的实际环境路径: IDF_PYTHON_ENV_PATH -> C:\esp\tools.espressif\python_env\idf4.4_py3.8_env\Scripts\python.exe IDF_TOOLS_PATH -> C:\esp\tools.espressif IDF_PATH -> C:\esp\esp-idf

C:\esp\esp-idf\examples\build_system\cmake\idf_as_lib>idf.py build
Executing action: all (aliases: build)
Running cmake in directory c:\esp\esp-idf\examples\build_system\cmake\idf_as_lib\build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -DCCACHE_ENABLE=1 c:\esp\esp-idf\examples\build_system\cmake\idf_as_lib"...
-- The C compiler identification is unknown
CMake Error at CMakeLists.txt:3 (project):
  No CMAKE_C_COMPILER could be found.

  Tell CMake where to find the compiler by setting either the environment
  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
  the compiler, or to the compiler name if it is in the PATH.


-- Configuring incomplete, errors occurred!
See also "C:/esp/esp-idf/examples/build_system/cmake/idf_as_lib/build/CMakeFiles/CMakeOutput.log".
See also "C:/esp/esp-idf/examples/build_system/cmake/idf_as_lib/build/CMakeFiles/CMakeError.log".
cmake failed with exit code 1

CMake列表

cmake_minimum_required(VERSION 3.5)

project(idf_as_lib C)

if("${TARGET}" STREQUAL "esp32")
    # Include for ESP-IDF build system functions
    include($ENV{IDF_PATH}/tools/cmake/idf.cmake)
    # Create idf::esp32 and idf::freertos static libraries
    idf_build_process(esp32
                    # try and trim the build; additional components
                    # will be included as needed based on dependency tree
                    #
                    # although esptool_py does not generate static library,
                    # processing the component is needed for flashing related
                    # targets and file generation
                    COMPONENTS esp32 freertos esptool_py
                    SDKCONFIG ${CMAKE_CURRENT_LIST_DIR}/sdkconfig
                    BUILD_DIR ${CMAKE_BINARY_DIR})
else()
    # Create stubs for esp32 and freertos, stub::esp32 and stub::freertos
    add_subdirectory(stubs/esp32)
    add_subdirectory(stubs/freertos)
    add_subdirectory(stubs/spi_flash)
endif()

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

set(elf_file ${CMAKE_PROJECT_NAME}.elf)
add_executable(${elf_file} main.c)

# Link the static libraries to the executable
if("${TARGET}" STREQUAL "esp32")
    target_link_libraries(${elf_file} idf::esp32 idf::freertos idf::spi_flash)
    # Attach additional targets to the executable file for flashing,
    # linker script generation, partition_table generation, etc.
    idf_build_executable(${elf_file})
else()
    target_link_libraries(${elf_file} stub::esp32 stub::freertos stub::spi_flash)
endif()
Windows visual-studio-code cmake esp32 esp-idf

评论

0赞 MrPython 6/22/2022
您可以尝试在致电之前拨打电话(learn.microsoft.com/de-de/cpp/build/...)。例如,在我的计算机上,它将是vcvarsall.batidf.py buildcall "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
0赞 Daniel 6/22/2022
在我的版本 2022 中,我在 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary 中没有 Build 目录
0赞 RemyHx 6/28/2022
通常,您必须在 vscode 子目录中设置 json 文件,通过访问 vscode 中的命令面板并找到 esp-idf: new project 即可轻松完成。填写详细信息,按选择模板。将扩展名更改为 esp-idf 并保护新项目。子目录 vscode 可以传输到您的示例目录并执行 fullclean 和构建。

答: 暂无答案