0

我正在尝试 CMake 一个项目。我是新手,所以我想这对于熟悉 CMake 的人来说一定很明显:在 main.c 所在的主文件夹中,我包括

#include "tensorflow/lite/micro/all_ops_resolver.h"

找到了这个库。在文件 all_ops_resolver.h 中有一行:

#include "tensorflow/lite/micro/micro_mutable_op_resolver.h"

在 micro_mutable_op_resolver.h 文件中是另一行:

#include <cstdio>

现在这会触发 CMake 的错误:

> In file included from
> ../main/tensorflow/lite/micro/all_ops_resolver.h:19,
>                  from ../main/main.c:16: ../main/tensorflow/lite/micro/micro_mutable_op_resolver.h:18:10: fatal
> error: cstdio: No such file or directory  #include <cstdio>
>                                                    ^~~~~~~~ 
> compilation terminated.`

文件 stdio.h 将位于:

~/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/xtensa-esp32-elf/include

它在项目目录之外。我不知道应该进入哪个 CMakeLists.txt 以将编译器指向该文件夹。有人可以帮忙吗?

4

2 回答 2

5
#include <cstdio>

是一个 C++ 头文件,micro_mutable_op_resolver.h头文件似乎来自 TensorFlow Lite for Microcontrollers,它是一个 C++ 库,因此您可能应该将 main.c 更改为 main.cpp 并编译为 C++。

于 2021-02-03T14:21:01.853 回答
3
#include <cstdio>

是 fot C++。

你正在使用 C,所以你应该使用

#include <stdio.h>

反而。

于 2021-02-03T14:16:14.107 回答