4

我的项目正在从CMake过渡到Bazel,我通过将Abseil的快照检入到我们存储库中的顶级目录中来包含它。我需要在过渡期间支持这两个构建系统,所以我创建了文件并注意到需要禁用很多警告才能编译 Abseil 标头。third_party/CMakeLists.txt

对于 CMake,这没关系,因为我可以通过使用#include <absl/strings/str_cat.h>语法来包含使用它们的标头。这告诉我的编译器它是一个系统头文件并忽略警告,所以我不必全局禁用它们。

但是,对于 Bazel,我收到此错误:

错误:找不到包含“absl/strings/str_cat.h”的文件;改用“引号”

有没有办法告诉 Bazel 允许<>-style 包含?是否有另一种方法可以仅针对这些标头禁用警告而不为整个项目禁用它们?

4

1 回答 1

0

默认情况下,bazel 不会-I为编译操作发出任何 cc-library 特定的包含 () 目录标志。由于包含查找不是免费的,我们依赖于单一的根标头层次结构。但是您可以告诉 bazel 通过includes在给定的cc_library. 或者,最好使用strip_include_prefixand include_prefix

于 2017-10-02T07:18:03.907 回答