bazel - 为什么 bazel 失败,标题不在指定的条带前缀下
问题描述
我正在使用 bazel 3.7.2(相同的项目适用于 bazel 3.3.1)
在我的构建文件中,我使用:
cc_library(
name = "xft",
hdrs = ["@nixpkgs_xft//:include"],
strip_include_prefix = "/external/nixpkgs_xft/include",
)
跑步bazel build target
,巴泽尔抱怨:
BUILD:71:11: in cc_library rule //target:xft: header 'external/nixpkgs_xft/include/X11/Xft/Xft.h' is not under the specified strip prefix 'external/nixpkgs_xft/include'
不知何故,巴泽尔对标题的前缀有了不同的理解……这应该如何工作?
external/nixpkgs_xft/include/X11/Xft/Xft.h
external/nixpkgs_xft/include
解决方案
好的,错误消息确实令人困惑。我查看了代码,发现与前缀相比,与头文件相比有不同的东西:存储库相对路径与前缀进行比较(但错误消息打印“执行路径”)。
似乎在较新的 Bazel 中,您不再需要包含exernal/foo
路径的一部分,所以这有效:
cc_library(
name = "xft",
hdrs = ["@nixpkgs_xft//:include"],
strip_include_prefix = "/include",
)
推荐阅读
- java - 错误底部导航 AndroidStudio Java
- swift - 显示白框的后退栏按钮
- c++ - 文件太大其他选项
- python - 比较两个大的 csv 文件需要很长时间
- python - TensorFlow : c++ 自定义 op 官方示例 zero_out : 错误
- vue.js - 为什么 v-slot 在单个文件中不起作用?
- spring-boot - Spring Cloud Gateway 自定义网关过滤器不起作用
- javascript - RegEx JavaScript 替换等号后跟一个新行
- visual-studio-code - 如何仅更改侧边栏的主题?
- python - 如何在一台机器上运行 gRPC 客户端,在另一台机器上运行 gRPC 服务器?