[英]Include a locally built non bazel c++ library in bazel project
我是 bazel 和 c++ 開發的新手。 我的情況與此處和此處發布的情況類似。 按照第一個鏈接中發布的步驟,我正在嘗試將這個本地構建的 package 加載到 bazel 項目中。
WORKSPACE
new_local_repository(
name = "openvino",
build_file = "backend/cpp/BUILD",
path = "C:\\Users\\user\\OpenVINO2022.1.0.dev20220316_OMP\\openvino",
)
在 backend/cpp 文件夾中BUILD
文件
cc_library(
name = "openvino",
srcs = glob(["**/*.lib"])+ glob(["**/*.dll"]),
hdrs = glob(["**/*.hpp"]),
includes = ["src/inference/include/openvino"],
visibility = ["//visibility:public"]
)
cc_library(
name = "main_c",
srcs = ["main_c.cc"],
hdrs = [
"utils.h",
],
deps = [
"//flutter/cpp/c:headers",
],
alwayslink = 1,
visibility = ["//visibility:public"]
)
cc_binary(
name = "libbackend.dll",
linkshared = 1,
win_def_file = "//flutter/cpp/c:dll_export.def",
deps = [
":openvino",
":main_c",
],
linkopts = ["-shared"],
)
后端/cpp 文件夾中的 main_c.cc 文件
#include "openvino\src\inference\include\openvino\openvino.hpp"
但我仍然無法加載這個庫。
錯誤
backend/cpp/main_c.cc(7): fatal error C1083: Cannot open include file: 'openvino\src\inference\include\openvino\openvino.hpp': No such file or directory
任何幫助表示贊賞。
這似乎是您的包含路徑的問題。 header 的包含路徑應該是。
#include "src\inference\include\openvino\openvino.hpp"
或者,當您將includes = ["src/inference/include/openvino"]
添加到您的 'openvino' 目標時,您也可以使用包含路徑。
#include "openvino.hpp"
如果由於某種原因您需要保持包含路徑相同,您可以在“openvino”目標中添加包含前綴。
例如
cc_library(
name = "openvino",
srcs = glob(["**/*.lib"])+ glob(["**/*.dll"]),
hdrs = glob(["**/*.hpp"]),
# Remove this line.
# includes = ["src/inference/include/openvino"],
# Add this line, to allow include as if it were in an "openvino"
# directory.
include_prefix = "openvino",
visibility = ["//visibility:public"]
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.