问题描述
我正在尝试 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>
> 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.`
~/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/xtensa-esp32-elf/include
在项目目录之外。我无法弄清楚应该进入哪个 CMakeLists.txt 以将编译器指向该文件夹。有人可以帮忙吗?
解决方法
#include <cstdio>
是一个 C++ 头文件,micro_mutable_op_resolver.h
头文件似乎来自 TensorFlow Lite for Microcontrollers,它是一个 C++ 库,因此您可能应该将 main.c 更改为 main.cpp 并编译为 C++。>
#include <cstdio>
适用于 C++。
你正在使用 C,所以你应该使用
#include <stdio.h>
相反。