5

Ultra96v2 ボードのコース「Introduction to Deep Learning with Xilinx SoCs Technical Training Course」を受講していて、Lab No. 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

チュートリアルと私が提供したパスに含まれていますが、ヘッダーファイルは見つかりません。実際には、さらに 2 つのファイルが見つかりませんでした。

  • #include <opencv2/opencv.hpp>
  • #include <dnndk/dnndk.h>

それらが含まれていたディレクトリからそれらを手動で選択し、ザイリンクス SDK がヘッダーを検索する必要がある追加のディレクトリに追加することで、それらを含めることができました。しかし、ここで疑問が生じます: そもそもなぜ彼らは見つからないのでしょうか? 正しくインストールし、上記のチュートリアルの指示に従っていれば、ビルドするだけの準備は整っているのではないでしょうか?

実際、ザイリンクス ダウンロード サイト ( Xilinx_SDK_2018.3_1207_2324_Lin64.bin) のインストーラーを使用すると、SDK プログラム (eclipse など) の一部のファイルが不足していたため、SDK が起動しませんでした。そのため、他のインストール (Vivado など) からこれらのファイルをコピーすると、開始されました。これも箱から出してすぐに動作するはずではありませんか?残念ながら再インストールなどはうまくいきませんでした。

したがって、ここで具体化する 1 つの質問は次のとおりだと思います。必要なすべての標準ヘッダー ファイルのディレクトリへのパスを Eclipse/Xilinx SDK に与えて、それらを検索することは可能ですか? 一部の標準ヘッダーには、ザイリンクス SDK で検出されない他のヘッダーが含まれているためです。そして、それは私の問題を解決しますか?

おかしなことに、Ctrl+クリック アクションを使用してヘッダーからヘッダーにジャンプすると、すべてのヘッダーが検出され、問題はありません。埋め込まれた追加のヘッダーが見つからなくなったのは、ビルド プロセスのみです。また、 を に変更する#include_next#include、すべてが再び機能し始めます。に変更#include <header>しても同様#include "header.h"です。その後、動作します。しかし、エラーをスローするすべてのヘッダーを変更することは解決策にはなりません。これは、何らかの理由でこのように生成されたからです。

これは本当に煩わしく、ワークフローを混乱させます。この問題も抱えていて、私を助けてくれる人はいますか?Ubuntu 16.04と Ultra96v2 ボードを使用しています。


アップデート

私がこれまで調査してきたことは役に立たなかった:

  1. 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-standard-header-files
  2. インクルードパスが設定されていても、Eclipseはヘッダーファイルを見つけることができません
  3. C++ 標準ライブラリのヘッダーはどこにありますか
  4. https://www.eclipse.org/forums/index.php/t/1088833/

C++ gcc 標準ライブラリのパスを、Eclipse/ザイリンクス IDE がヘッダーを検索するパスとして含めましたが、ファイル内のヘッダーが見つかりません。


更新 2

ここで、問題の始まりを確認できます。すべてが自動生成されるため、特に変更されていない事前定義されたヘッダーとソースであるため、これは本当に奇妙です。

問題の原因

ここでは、通常の標準ヘッダーの場所をインクルード パスに含めていることがわかります。そのため、問題のファイルが見つかるはずです。

パスとして含まれる標準ヘッダー

4

0 に答える 0