外部存储库的bazel WORKSPACE文件导致缺少#includes



我正试图为一个使用谷歌测试的项目设置一个工作区文件。我遵循这里的说明:https://docs.bazel.build/versions/master/cpp-use-cases.html#including-外部库。

我有一个WORKSPACE文件,看起来像这样:

new_http_archive(
name = "gtest",
url = "https://github.com/google/googletest/archive/release-1.7.0.zip",
sha256 = "b58cb7547a28b2c718d1e38aee18a3659c9e3ff52440297e965f5edffe34b6d0",
build_file = "gtest.BUILD",
strip_prefix = "googletest-release-1.7.0",
)

我有一个BUILD文件,看起来像这样:

COPTS = [
"-I/usr/local/include",
"-Iexternal/gtest/include",
"-Wno-sign-compare",
]
cc_test(
name = "gaussian_test",
srcs = ["gaussian_test.cc"],
copts = COPTS,
deps = [
"//:boom",
"//:boom_test_utils",
"@gtest//:main",
],
)

我的gaussian_test.cc文件的#include部分包括以下行:

#include "gtest/gtest.h"

当我尝试运行测试时,我会得到

Models/tests/gaussian_test.cc:1:10: fatal error: gtest/gtest.h: No such file or directory
#include "gtest/gtest.h"

在我的主存储库中,我通过在/usr/local中手动安装googletest来解决这个问题,但我正在寻找一个更便携的解决方案,同时也希望消除我对WORKSPACE文件应该如何操作的一个根本误解。谢谢

我问题中缺少的部分是gtest BUILD文件,其中包含缺少的路径信息。

最新更新