CMake 错误:包含找不到加载文件:目标

Posted

技术标签:

【中文标题】CMake 错误:包含找不到加载文件:目标【英文标题】:CMake Error: include could not find load file: targets 【发布时间】:2019-12-03 23:42:13 【问题描述】:

我正在尝试在我的 ESP32(在 Windows 上)上运行 AmazonFreeRTOS。在我的 amazon-freertos 主文件夹中创建构建文件夹后,我尝试使用

从主文件夹构建它

cmake --build .\build

我遇到的错误是

include 找不到加载文件:目标

但是,有一个 idf_functions.cmake 文件包含include(targets) 命令,并且targets.cmake 文件在同一个文件夹中,所以我不知道为什么会出现错误。

【问题讨论】:

【参考方案1】:

如果您密切注意该错误,您会注意到完整的错误如下所示:

CMake 错误 your-amazon-freertos-directory/vendors/espressif/esp-idf/tools/cmake/idf_functions.cmake:26(包括)

include 找不到加载文件:

目标

这是因为idf_functions.cmake 将变量IDF_PATH 设置为$ENVIDF_PATH,这是在添加export IDF_PATH=~/esp/esp-idf 行时在~/.profile 中配置的,如here 所示。

如果您导航到~/esp/esp-idf/tools/cmake/,您会注意到<your-amazon-freertos-directory>/vendors/espressif/esp-idf/tools/cmake/idf_functions.cmake 中包含的target.cmakeldgen.cmake 等文件不存在。

解决方案 1(有点老套):<your-amazon-freertos-directory>/vendors/espressif/esp-idf/tools/cmake/的内容复制到~/esp/esp-idf/tools/cmake/

解决方案 2: 修改 ~/.profile 文件以添加以下行而不是 the guide 中建议的行:export IDF_PATH=~/<your-amazon-freertos-directory>/vendors/espressif/esp-idf/export PATH="$PATH:$IDF_PATH/tools"

这应该在生成构建文件和构建过程中避免任何 CMake 包含错误。

【讨论】:

【参考方案2】:

由于 Amazon FreeRTOS 支持除 ESP32 之外的许多不同平台,您可能需要提供额外的命令来告诉 CMake ESP32 是您要构建的目标。

尝试使用

cmake -DVENDOR=espressif -DBOARD=esp32_wrover_kit -DCOMPILER=xtensa-esp32 -S . -B your-build-directory

从您的***文件夹生成您的 makefile 到 build 文件夹,然后切换到您的 build 文件夹并调用

make all

(来自“构建、闪存和运行 Amazon FreeRTOS 演示项目”部分 https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_espressif.html)

【讨论】:

以上是关于CMake 错误:包含找不到加载文件:目标的主要内容,如果未能解决你的问题,请参考以下文章

C++ OpenCV 包含错误“找不到文件”

cmake 错误 - 找不到 opencv 库或头文件

错误: 找不到或无法加载主类 Examplel

CMake File API“找不到回复目录”

CMake - 找不到“QT”提供的包配置文件

CMake 找不到源文件,即使它位于正确的位置 [关闭]