Ich versuche, diese Header-Dateien zu importieren:Bazel- Ausgabe Import Header-Dateien
AffdexException.h Detector.h FaceListener.h Frame.h
PhotoDetector.h typedefs.h
CameraDetector.h Face.h FrameDetector.h ImageListener.h
ProcessStatusListener.h VideoDetector.h
Sie werden unter dem/root/affdex-sdk gelegen/umfassen. Hier ist, wie meine Basis-WORKSPACE-Datei aussieht:
new_local_repository(
name = "Boost",
path = "/usr/local/lib/",
build_file = "/usr/local/lib/BUILD.boost",
)
new_local_repository(
name = "OpenCV",
path = "/usr/lib/x86_64-linux-gnu/",
build_file = "/usr/lib/x86_64-linux-gnu/BUILD.opencv",
)
new_local_repository(
name = "AffdexSDK",
path = "/root/affdex-sdk/",
build_file = "/root/affdex-sdk/BUILD.affectiva",
)
Das Problem ist mit den Headerdateien AffdexSDK. Hier ist meine BUILD.affectiva:
package(default_visibility = ["//visibility:public"])
cc_library(
name = "affdex-sdk",
srcs = glob(["**/*.so"]),
hdrs = glob(["**/*.h"]),
)
und die BUILD-Datei mit meinem Hauptziel ich in ein binäres machen wollen:
cc_binary(
name = "video-detector",
srcs = ["vidDetector.cpp", "include/VideoDetector.h"],
deps = ["@AffdexSDK//:affdex-sdk",
"@Boost//:boost",
"@OpenCV//:opencv",
],
includes = [":affdex-sdk/include/"],
)
Und die Erklärungen für die Hauptquellcodedatei muss ich kompilieren :
#include <iostream>
#include <memory>
#include <chrono>
#include <fstream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <boost/filesystem.hpp>
#include <boost/timer/timer.hpp>
#include <boost/program_options.hpp>
#include </root/affdex-sdk/include/VideoDetector.h>
#include </root/affdex-sdk/include/PhotoDetector.h>
#include </root/affdex-sdk/include/AffdexException.h>
#include "/root/sdk-samples/common/PlottingImageListener.hpp"
#include "/root/sdk-samples/common/StatusListener.hpp"
Und wenn ich den Befehl bazel build // affdex-sdk laufen: Video-Detektor --verbose_failures:
ich diesen Fehler:
ERROR:/root/affdex-sdk/BUILD: 1: 1: nicht deklarierter Aufnahme (n) in der Regel '// affdex-sdk: Video-Detektor': diese Regel fehlt Abhängigkeit Erklärungen für die folgenden Dateien von ‚affdex-sdk/vidDetector.cpp‘ enthalten:
'/root/affdex-sdk/include/VideoDetector.h'
'/root/affdex-sdk/include/FrameDetector.h'
'/root/affdex-sdk/include/Detector.h'
'/root/affdex-sdk/include/typedefs.h'
'/root/affdex-sdk/include/ImageListener.h'
'/root/affdex-sdk/include/Face.h'
'/root/affdex-sdk/include/Frame.h'
'/root/affdex-sdk/include/FaceListener.h'
'/root/affdex-sdk/include/ProcessStatusListener.h'
'/root/affdex-sdk/include/AffdexException.h'
'/root/affdex-sdk/include/PhotoDetector.h'
'/root/sdk-samples/common/PlottingImageListener.hpp'
'/root/sdk-samples/common/StatusListener.hpp'
So bin ich nicht sicher, warum diese nicht enthalten sind, weil ich diese Header-Dateien über glob in BUILD.affectiva bin immer. Ich habe absolute Pfade in der Deklaration für vidDetector.cpp verwendet, weil sie sonst nicht abgerufen wurden. Ich bin nicht sicher, wie man die sdk-samples/allgemeine hpp-Dateien einschließt, aber ich würde annehmen, dass die anderen Headerdateien in affdex-sdk über glob in BUILD.affectiva enthalten werden. Bitte hilf mir.