我正在学习 Ultra96v2 开发板的“ Xilinx SoC 深度学习技术培训课程简介”课程,并达到了 5 号实验室。
在我应该在 SDK 中构建项目之前,我可以继续跟进。它失败并告诉我如下错误:
15:49:06 **** Incremental Build of configuration Debug for project mnist_file_io ****
make all
Building file: ../src/mnist_file_io.cc
Invoking: ARM v8 Linux g++ compiler
aarch64-linux-gnu-g++ -Wall -O0 -g3 -I/media/user/6b04b610-ff80-4702-a575-b0b1a78fbafb/training/AvnetTTC/DPU/U96AI_student_20200115/U96AI/2018_3/work/lab5/workspace/ExtraIncludes -I/usr/include -c -fmessage-length=0 -MT"src/mnist_file_io.o" --sysroot=YSROOT -MMD -MP -MF"src/mnist_file_io.d" -MT"src/mnist_file_io.o" -o "src/mnist_file_io.o" "../src/mnist_file_io.cc"
In file included from ../src/mnist_file_io.cc:9:0:
/tools/Xilinx/SDK/2018.3/gnu/aarch64/lin/aarch64-linux/aarch64-linux-gnu/include/c++/7.3.1/cmath:45:15: fatal error: math.h: No such file or directory
#include_next <math.h>
^~~~~~~~
compilation terminated.
src/subdir.mk:21: recipe for target 'src/mnist_file_io.o' failed
make: *** [src/mnist_file_io.o] Error 1
它没有找到头文件,尽管它包含在教程和我提供的路径中。实际上,还没有找到两个附加文件:
#include <opencv2/opencv.hpp>
#include <dnndk/dnndk.h>
我可以通过从它们所在的目录中手动选择它们并将它们添加到 Xilinx SDK 应该在其中搜索标头的额外目录来包含它们。但这带来了一个问题:为什么一开始就没有发现它们?正确安装并按照上述教程中的说明进行操作后,我不应该全部准备好构建它吗?
实际上,通过使用 Xilinx 下载网站 ( Xilinx_SDK_2018.3_1207_2324_Lin64.bin
) 上的安装程序,SDK 没有启动,因为 SDK 程序缺少一些文件(eclipse 和其他一些东西)。因此,一旦我从其他安装(Vivado 等)复制了这些文件,它就开始了。这不是开箱即用的吗?不幸的是,重新安装等都没有用。
所以我想这里明确的一个问题是:是否有可能为 Eclipse/Xilinx SDK 提供所有必需标准头文件的目录路径并在其中搜索?因为在某些标准头文件中,它们包含其他头文件,而赛灵思 SDK 又找不到这些头文件。那会解决我的问题吗?
有趣的是,当我使用 Ctrl+Click 动作从一个标题跳转到另一个标题时,所有标题都找到了,没有问题。仅在构建过程中不再找到嵌入的更多标头。此外,当我将 更改为#include_next
时#include
,整个事情又开始工作了。更改#include <header>
为#include "header.h"
. 然后它工作。但这不可能是解决方案,更改每个引发错误的标头,因为它是出于某种原因生成的,对吗?
这真的很烦人,并且会破坏任何工作流程。有没有人也有这个问题并且可以帮助我?我正在使用Ubuntu 16.04和 Ultra96v2 板。
更新
到目前为止我调查的内容无济于事:
- https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/993711/cc3235sf-why-is-ccs-eclipse-unable-to-see- -c-标准头文件
- 即使设置了包含路径,Eclipse 也找不到头文件
- C++标准库的头文件在哪里
- https://www.eclipse.org/forums/index.php/t/1088833/
我已经包含了我的 C++ gcc 标准库的路径作为 Eclipse/Xilinx IDE 应该在其中搜索头文件的路径,但文件中的头文件没有被找到。
更新 2
在这里你可以看到问题从哪里开始。这真的很奇怪,因为一切都是自动生成的,因此应该可以正常工作,特别是因为那些是预定义的标题和源,我没有改变它们。
在这里,您可以看到我在包含路径中包含了通常的标准头文件位置,因此应该可以找到相关文件。