我正在尝试使用Bazel编译基于OpenCV的C ++程序,我正面临一个问题。
我用这个WORKSPACE
文件创建了我的项目:
new_local_repository(
name = "opencv330",
path = "/usr/opencv330",
build_file = "opencv330.BUILD",)
和此opencv330.BUILD
文件:
cc_library(
name = "opencv330",
srcs = glob(["lib/*.so*"]),
hdrs = glob(["include/**/*.hpp", "include/**/*.h",
"/include/opencv2/*.h", "/include/opencv2/*.hpp"]),
includes = ["include"],
visibility = ["//visibility:public"],
linkstatic = 1,
)
c_binary(
name = "main",
srcs = ["main.cc"],
deps = [
"@opencv330//:opencv330"
],
)
作为一个例子,我尝试使用简单的Opencv程序,该程序从文件中读取视频:
CvCapture* g_capture = NULL; // Структура для видеофайла
g_capture = cvCreateFileCapture("1080.mp4");
IplImage* frame;
frame = cvQueryFrame(g_capture);
cvNamedWindow("original", 0); // Создание окна
while(1){
frame = cvQueryFrame(g_capture); // Последовательное чтение кадров
if (!frame) { // Конец файла, кадров больше нет
break;
}
// Display the resulting frame
cvShowImage("original", frame); // Отображение кадра
// Press ESC on keyboard to exit
char c = cvWaitKey(15); // Ожидание 15 мс, получение ASCII кода клавиши
if (c == 27) { // Если Esc - выход из цикла
break;
}
}
// When everything done, release the video capture object
cvReleaseCapture(&g_capture); // Закрытие файла
// Closes all the frames
cvDestroyAllWindows();
但现在我有错误:
在./tensorflow/core/framework/tensor.h:19:0中包含的文件中, 来自./tensorflow/cc/framework/ops.h:21, 来自./tensorflow/cc/ops/const_op.h:19, 来自tensorflow / examples / label_image / main.cc:41:/home/viol5728/tensorflow-r1.7/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:42: 致命错误:不支持/ Eigen / CXX11 / Tensor:没有这样的文件或目录
包括“unsupported / Eigen / CXX11 / Tensor”
但文件Tensor在目录“unsupported / Eigen / CXX11 / Tensor”中! (Tensorflow 1.7)
系统中有两个目录:
1) “/家/ viol5728 / tensorflow-R1.7 / THIRD_PARTY / eigen3 /不支持/本征/ CXX11”
2)“/ usr / include / eigen3 / unsupported / Eigen”
那我怎么能把Bazel指向第一个目录?????