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

时间:2018-11-23 18:35:39

标签: c++ build googletest bazel

我正在尝试为使用googletest的项目设置工作区文件。我正在按照这里的说明进行操作:https://docs.bazel.build/versions/master/cpp-use-cases.html#including-external-libraries

我有一个如下所示的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文件的了解应该运作。谢谢。

1 个答案:

答案 0 :(得分:0)

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