问题标签 [bazel-cpp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mingw - 使用 Bazel 和 Mingw 编译 gflags 库
我在 Windows 10 上使用 MSYS2。我将mingw-w64-x86_64-gcc安装到我的 MSYS2 环境中。
现在我尝试gflags
使用 Bazel 和 MinGW 构建库。
我收到以下错误:
执行时似乎出了点问题expand_template
。但我不知道为什么。有没有人有一些想法或提示这里有什么问题?
bazel - 如何将 `cc_binary`/`cc_library` 包装到自定义规则中(不是宏!)?
为了解决bug并设置特定于平台的编译器选项,我想将cc_binary
(and cc_library
) 包装到自定义规则中。我不想使用宏,因为我必须像这样构造我的代码:
相反,我想像这样构建我的代码:
后者仅在可以查询平台属性的规则中才有可能。在宏中,我会卡住select
每个单独的属性。
我的问题是我的自定义规则的样板 - 应该是什么attrs
,以便我可以透明地转发到本机cc_binary
/cc_library
规则?我是否错过了一种简单的方法来做到这一点,即不会将cc_*
规则的整个接口规范翻译成starlark?
bazel - Bazel:如何使 new_local_repository 目标依赖于 http_archive 生成的目标?
我有几个依赖于 的第三方库,所以我通过存储库机制 ( )openssl
获取和构建 openssl 。http_archive()
而且我有 GRPC,boringssl
它具有与 openssl 相同的符号(链接后我因冲突而出错)。
我想重新定义boringsll
使用new_local_repository()
方法。但我不知道如何将生成的路径传递给path
参数以及new_local_repository()
调用如何取决于openssl
目标。
想要获取的代码如下所示:
bazel - 如何仅与带有 bazel 的某些库动态链接?
有某些库,例如具有全局状态的 gflags。我处于主要可执行文件和动态加载的插件(.so)都使用gflags的情况。在这两种情况下,bazel 都会静态链接 gflags。我需要改变这一点,我必须以某种方式告诉 bazel 仅动态链接 gflags。我想我可以设置linkstatic=False
主可执行文件和插件(.so)。但在那之后,所有其他库也将动态链接到它们。
所以我的问题是:我怎样才能告诉 bazel只动态链接 gflags?
c++ - bazel rules_foreign_cc - //:取决于存储库@local_config_cc 中的@local_config_cc//:cc-compiler-k8 无法获取
我是bazel的绝对初学者。我正在尝试通过rules_foreign_cc使用 bazel 构建基于 CMake 的应用程序
基本信息:
- 操作系统:Ubuntu 20.04 LTS
- Bazel 版本:尝试使用 3.4.0 和 5.0.0
- CMake 版本:3.19.5
我的目录结构看起来像这样
<my_cmake_based_app> 在其根目录下有一个 CMakeLists.txt。
WORKSPACE 文件如下所示:
我的 BUILD 文件如下所示:
用于开始构建。我使用以下命令:
错误日志如下所示:
我的一些明显问题是:
- 我不知道这个@local_config_cc 是从哪里来的。
- 我是否错过了要在我的 WORKSPACE / BUILD 文件中添加的内容?或者
- 我的目录结构是一团糟吗?
附带说明一下,由于这是我第一次在 stackoverflow 上发布内容,因此我非常感谢任何提示,以便我将来可以以更好的方式提出问题。
谢谢!
编辑:仅供参考,我能够在我现有的系统上构建rules_foreign_cc中给出的示例。
编辑:仅供参考,我使用的系统是 AWS EC2 实例