首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在巴泽尔找不到盖布

在巴泽尔找不到盖布
EN

Stack Overflow用户
提问于 2017-09-07 13:37:20
回答 1查看 2.8K关注 0票数 4

我目前正在使用Bazel构建一个C++项目。以下是我的工作区文件:

代码语言:javascript
复制
cc_library(
name = "Boost",
srcs = glob(["/usr/local/lib/libboost*.so"]),
hdrs = glob(["/home/duttama/boost_1_55_0/**/*.h"]),
)


cc_library(
name = "OpenCV",
srcs = glob(["/usr/lib/x86_64-linux-gnu/libopencv*.so"]),
hdrs = glob(["/home/duttama/opencv-2.4.13/**/*.h"]),
)


cc_library(
name = "AffectivaSources",
srcs = glob(["/root/affdex-sdk/lib/*.so"]),
hdrs = glob(["/root/affdex-sdk/include/*.h"]),
)

这是我的构建文件:

代码语言:javascript
复制
cc_binary(
name = "video-demo",
srcs = ["video-demo.cpp"],
deps = ["//lib:OpenCV",
            "//lib:AffectivaSources",
            "//lib:Boost",
],
)    

当我运行它时,我会得到以下错误:

代码语言:javascript
复制
ERROR: /root/sdk-samples/WORKSPACE:17:12: Traceback (most recent call last):
File "/root/sdk-samples/WORKSPACE", line 15
    cc_library(name = "AffectivaSources", srcs = ..."]), ..."]))
File "/root/sdk-samples/WORKSPACE", line 17, in cc_library
    glob
name 'glob' is not defined

我的问题是为什么它找不到glob函数。我不知道在工作区文件中还需要指定什么,也不知道如何导入这个glob函数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-07 16:16:25

工作区文件不是用于cc_binary/cc_rules的;它用于定义项目范围内的规则,例如外部依赖项,而glob函数在工作区文件中不可用。有关工作区规则,请参见https://docs.bazel.build/versions/master/be/workspace.html

您似乎要将c++依赖项导入到项目中:查看new_local_repository规则这里。这允许您指向本地系统中的文件夹。它将要求您编写包含每个外部依赖项各自的cc_library规则的构建文件。

例如,在工作区文件中:

代码语言:javascript
复制
new_local_repository(
  name = "affectivalibrary",
  path = "/root/affdex-sdk/",
  build_file = "BUILD.affectiva",
)

在您的项目中,创建一个BUILD.affectiva

代码语言:javascript
复制
cc_library(
  name = "aff",
  srcs = glob(["lib/*.so"]),
  hdrs = glob(["include/*.h"]),
)

完成此操作后,可以使用语法在构建文件中依赖它们:

代码语言:javascript
复制
cc_binary(
  name = "video-demo",
  srcs = ["video-demo.cpp"],
  deps = ["@affectivalibrary//:aff", ...]
)

我还看到您在srcs/hdrs属性中使用绝对文件路径-- glob模式不能是绝对的。请参考构建文件目标标签语法:https://docs.bazel.build/versions/master/build-ref.html#lexi

如果您仍然感到困惑,那么在Bazel存储库中有一个示例c++项目:https://github.com/bazelbuild/bazel/tree/master/examples/cpp

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46097846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档