如何在CLion中将外部c ++库与bazel一起使用?

时间:2019-07-16 22:16:05

标签: c++ clion bazel

我正在编写一个使用CLion作为我的IDE和Bazel作为我的构建工具的C ++程序。我需要解析XML,并想使用xerces-c Apache库。我已经设置了WORKSPACE文件,以为xerces-c共享库创建本地存储库:

new_local_repository(
    name = "system_libs",
    path = "/usr/lib/x86_64-linux-gnu",
    build_file_content = """
cc_library(
    name = "xerces",
    srcs = ["libxerces-c-3.2.so"],
    visibility = ["//visibility:public"],
)
    """
)

但是,我无法说服CLion(已安装bazel插件)为xerces-c的头文件建立索引。

我尝试过:

WORKSPACE:
new_local_repository(
    name = "system_headers",
    path = "/usr/local/include",
    build_file_content = """
cc_library(
    name = "xerces",
    hdrs = glob(["xercesc/**/*.hpp"]),
    visibility = ["//visibility:public"],
)
    """
)

BUILD:
cc_library(
    name = "page_parser_lib",
    srcs = ["page_parser.cc"],
    hdrs = ["page_parser.h"],
    deps = [
        "@system_headers//:xerces",
        "@system_libs//:xerces",
    ],
)

但这没有帮助。

通过命令行构建仅需@system_libs//:xercesc依赖即可。这似乎只是一个CLion索引问题。

问题:我如何说服CLion在/usr/local/include/xercesc中查找并索引在其中找到的标题?

1 个答案:

答案 0 :(得分:0)

这实际上是bazel 0.28.0中的bug,在索引期间导致CLion失败。我恢复到0.27.2,问题消失了。