gpt4 book ai didi

C++/巴泽尔 : How to include angle <> bracket system headers?

转载 作者:搜寻专家 更新时间:2023-10-31 02:05:44 24 4
gpt4 key购买 nike

问题:我正在努力针对尖括号中包含的外部依赖项进行构建。

背景:我有一个包含 Eigen 库的头文件:

#include <Eigen/Dense>

这是作为外部依赖项本地安装在系统上的。由于各种原因,修改依赖项的安装方式目前不是一个现实的选择。

所以我需要一个一致的封装外部依赖作为 Bazel 目标。目前我正在研究一个看起来像这样的仅 header 目标:

cc_library(
name = "my_library",
hdrs = [ "some/local/header.h"],
textual_hdrs = ["@system_deps//:eigen3"],
deps = ["@system_deps//:eigen3"],
)

这是基于我的理解,即 (1) 非 .h 文件需要在 textual_hdrs 中,以及 (2) 当它不属于 deps 时它肯定看不到它。但我承认我在黑暗中捕获了这里。

这当然指向我的工作区:

new_local_repository(
name = "system_deps".
path = "/usr/include/eigen3",
build_file_content = """
cc_library(
name="eigen3",
textual_hrds = glob["Eigen/*"]),
visibility = ["//visibility:public"],
)
""",
)

结果:错误:找不到 'Eigen/Dense' 文件,等等等等

(当我的头文件包含在其他地方时会发生这种情况。)

有趣的是,它确实以某种方式找到了 Eigen/Dense,因为它提示(正确地)找不到包含的另一个文件。不确定是否

那么:正确的方法是什么?我读过其他类似的问题,但还没有完全掌握如何封装这些外部依赖项。

最佳答案

属性cc_binary.includes帮助?

关于C++/巴泽尔 : How to include angle <> bracket system headers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51427219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com