- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试在将 rxcpp 包含到我的主项目之前编译一个简单的 c++ 示例项目,但是,我遇到了找不到 rxcpp 库的困难。
所有文件都在同一目录中。
工作站规范:
主.cc
#include <iostream>
#include "rxcpp/rx.hpp"
int main()
{
std::cout << "Hello RxCpp!";
}
Bazel 工作区文件写成
# WORKSPACE
new_http_archive(
name="RxCpp",
url="https://github.com/Reactive-Extensions/RxCpp/archive/v4.0.0.zip",
build_file="BUILD.rxcpp",
strip_prefix = "RxCpp-4.0.0"
)
其中BUILD.rxcpp写成
# BUILD.rxcpp
cc_library(
name="rxcpp",
hdrs=glob(["Rx/v2/src/rxcpp/*.hpp",
"Rx/v2/src/rxcpp/**/*.hpp"]),
visibility=["//visibility:public"]
)
Bazel项目的BUILD文件写成
# BUILD
cc_binary(
name="some_binary_name",
srcs=["main.cc"],
deps=["@RxCpp//:rxcpp"]
)
运行
bazel build -c dbg --cxxopt='-std=c++14' //:some_binary_name --verbose_failures --sandbox_debug
返回:
INFO: Analysed target //:some_binary_name (1 packages loaded).
INFO: Found 1 target...
ERROR: /Users/ddowney/workspace/cpp/rxcpp_test_build/BUILD:2:1: C++ compilation of rule '//:some_binary_name' failed (Exit 1): sandbox-exec failed: error executing command
(cd /private/var/tmp/_bazel_ddowney/234783b10f6b175e3bb988e899ac1d0e/execroot/__main__ && \
exec env - \
APPLE_SDK_PLATFORM='' \
APPLE_SDK_VERSION_OVERRIDE='' \
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
PATH=/Users/ddowney/anaconda3/bin:/Users/ddowney/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/go/bin:/usr/local/share/dotnet:/opt/X11/bin:/Users/ddowney/anaconda3/bin:/Users/ddowney/.cargo/bin:/Users/ddowney/Library/Android/sdk/platform-tools/:/Users/ddowney/Library/Android/sdk/platform-tools/ \
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk \
TMPDIR=/var/folders/sj/dylcfjks0hbc43fk8ylf71fw0000gn/T/ \
XCODE_VERSION_OVERRIDE=9.2.0 \
/usr/bin/sandbox-exec -f /private/var/tmp/_bazel_ddowney/234783b10f6b175e3bb988e899ac1d0e/bazel-sandbox/6190111679734456077/sandbox.sb /private/var/tmp/_bazel_ddowney/234783b10f6b175e3bb988e899ac1d0e/execroot/__main__/_bin/process-wrapper '--timeout=0' '--kill_delay=15' external/local_config_cc/wrapped_clang '-D_FORTIFY_SOURCE=1' -fstack-protector -fcolor-diagnostics -Wall -Wthread-safety -Wself-assign -fno-omit-frame-pointer -g '-std=c++11' '-std=c++14' -iquote . -iquote bazel-out/darwin-dbg/genfiles -iquote external/RxCpp -iquote bazel-out/darwin-dbg/genfiles/external/RxCpp -iquote external/bazel_tools -iquote bazel-out/darwin-dbg/genfiles/external/bazel_tools -isystem external/bazel_tools/tools/cpp/gcc3 -MD -MF bazel-out/darwin-dbg/bin/_objs/some_binary_name/main.d '-frandom-seed=bazel-out/darwin-dbg/bin/_objs/some_binary_name/main.o' '-isysroot __BAZEL_XCODE_SDKROOT__' -no-canonical-prefixes -Wno-builtin-macro-redefined '-D__DATE__="redacted"' '-D__TIMESTAMP__="redacted"' '-D__TIME__="redacted"' -c main.cc -o bazel-out/darwin-dbg/bin/_objs/some_binary_name/main.o)
main.cc:1:10: fatal error: 'rx/rx.hpp' file not found
#include "rx/rx.hpp"
^~~~~~~~~~~
1 error generated.
Target //:some_binary_name failed to build
INFO: Elapsed time: 2.123s, Critical Path: 1.84s
FAILED: Build did NOT complete successfully
我希望在当前目录的 bazel-out/darwin-dbg/bin/external/RxCpp 下找到 rxcpp 库,然而,事实并非如此。
构建目录输出如下:
ls -la /private/var/tmp/_bazel_ddowney/234783b10f6b175e3bb988e899ac1d0e/execroot/__main__/external/RxCpp/Rx/v2/src/rxcpp/
total 616
drwxr-xr-x 26 ddowney wheel 832 21 Mar 13:51 .
drwxr-xr-x 3 ddowney wheel 96 21 Mar 13:51 ..
drwxr-xr-x 61 ddowney wheel 1952 21 Mar 13:51 operators
-rwxr-xr-x 1 ddowney wheel 6408 22 Mar 2017 rx-connectable_observable.hpp
-rwxr-xr-x 1 ddowney wheel 9340 22 Mar 2017 rx-coordination.hpp
-rwxr-xr-x 1 ddowney wheel 5675 22 Mar 2017 rx-coroutine.hpp
-rwxr-xr-x 1 ddowney wheel 5538 22 Mar 2017 rx-grouped_observable.hpp
-rwxr-xr-x 1 ddowney wheel 6171 22 Mar 2017 rx-includes.hpp
-rwxr-xr-x 1 ddowney wheel 251 22 Mar 2017 rx-lite.hpp
-rwxr-xr-x 1 ddowney wheel 8282 22 Mar 2017 rx-notification.hpp
-rwxr-xr-x 1 ddowney wheel 63252 22 Mar 2017 rx-observable.hpp
-rwxr-xr-x 1 ddowney wheel 21989 22 Mar 2017 rx-observer.hpp
-rwxr-xr-x 1 ddowney wheel 14552 22 Mar 2017 rx-operators.hpp
-rwxr-xr-x 1 ddowney wheel 9371 22 Mar 2017 rx-predef.hpp
-rwxr-xr-x 1 ddowney wheel 28270 22 Mar 2017 rx-scheduler.hpp
-rwxr-xr-x 1 ddowney wheel 1045 22 Mar 2017 rx-sources.hpp
-rwxr-xr-x 1 ddowney wheel 495 22 Mar 2017 rx-subjects.hpp
-rwxr-xr-x 1 ddowney wheel 41330 22 Mar 2017 rx-subscriber.hpp
-rwxr-xr-x 1 ddowney wheel 14088 22 Mar 2017 rx-subscription.hpp
-rwxr-xr-x 1 ddowney wheel 3551 22 Mar 2017 rx-test.hpp
-rwxr-xr-x 1 ddowney wheel 3917 22 Mar 2017 rx-trace.hpp
-rwxr-xr-x 1 ddowney wheel 23700 22 Mar 2017 rx-util.hpp
-rwxr-xr-x 1 ddowney wheel 232 22 Mar 2017 rx.hpp
drwxr-xr-x 10 ddowney wheel 320 21 Mar 13:51 schedulers
drwxr-xr-x 12 ddowney wheel 384 21 Mar 13:51 sources
drwxr-xr-x 6 ddowney wheel 192 21 Mar 13:51 subjects
最佳答案
Bazel 默认情况下仅将 -iquote
添加到外部存储库的根目录。因此 main.cc
中的包含路径应该是:
#include "Rx/v2/src/rxcpp/rx.hpp"
或者,您可能更喜欢将 includes
属性添加到 BUILD.rxcpp
:
cc_library(
name="rxcpp",
hdrs=glob(["Rx/v2/src/rxcpp/*.hpp",
"Rx/v2/src/rxcpp/**/*.hpp"]),
visibility=["//visibility:public"],
includes=["Rx/v2/src/"],
)
关于c++ - 将 RxCpp 添加到 C++ Bazel 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49396689/
当我调用 Bazel 命令并出现分析错误时,它只显示其中之一。例如: ERROR: /Users/oliver/src/github.com/monzo/wearedev/service.transa
我们正在生成许多 Go 源文件作为我们构建的一部分。以前我们使用了 genrule ( example here ) 导致生成的文件存储在 bazel-genfiles/ . 我们最近切换到使用自定义
有没有办法在 Bazel 中指定可选依赖项? 我想制定一个规则来在某种程度上反射(reflect) Kitware 的 ExternalData , 但我想看看我是否可以启用开发人员在树中编辑文件的工
我想知道特定于平台的默认 Bazel 构建标志是否可能。 例如,我们想要使用 --workspace_status_command,但这必须是 Linux 上的 shell 脚本,并且必须指向 Win
具体来说,我想从 Mac 主机对 Windows 工作人员运行测试。 评论 running bazel remote executor test on separate machines表明这是 Ba
我想知道特定于平台的默认 Bazel 构建标志是否可能。 例如,我们想要使用 --workspace_status_command,但这必须是 Linux 上的 shell 脚本,并且必须指向 Win
有没有办法指示 bazel 列出它找到的所有目标而不构建或测试它们? 最佳答案 bazel query 可用于发现 bazel 工作区内的目标(无需构建/测试它们) 例如; 查找给定包中的所有标签:
(来自https://groups.google.com/d/msg/bazel-discuss/XrtKLhH1bgI/B9xZn_aVAAAJ) 在我们使用 Bazel 构建的项目中,我使用了远程
在 bazel 构建期间,有一堆文本飞过,暂时显示然后从屏幕上删除。这发生在整个构建过程中。我尝试了几种重定向技术,将 stderr 重定向到标准输出但无济于事。我还尝试了 bazel 的详细标志。
我是 Bazel 的新手,并在 CentOS 7 上安装了 Bazel。我使用版本为“0.14.0- (@non-git)”的“yum install bazel”安装了它 启动 bazel 时,它总
我有几段 C++ 代码(模板、宏等),它们在使用某些方式时无法编译。手动编写一段代码来完成不应该编译的事情并验证它是否编译是很容易的,但这不是自动化的。看起来 Bazel 应该能够编译一段代码并自动验
鉴于使用 bazel 构建的相当大的存储库和多种语言的大量第三方依赖项(包括重型 docker 容器),我遇到以下问题: 运行 Bazel 查询会触发下载许多这些依赖项,从而导致查询性能下降。因此,问
假设我有一个 Bazel 宏,它使用生成器规则在给定输入文件的情况下生成输出文件: def my_generator( name, input_file,
在我的代码库中,在多个目标(cc_binary、cc_library 等)中包含相同的源文件通常是错误的。我想检测这个。 我可以 bazel query labels(srcs, //target:n
您好,我想读取 .bzl 文件中本地文件的内容。 print(onefile.basename) #content = ctx.read #content=ctx.file.o
我确信这已记录在某处,但无法在任何地方找到答案。 如果我有: ```bazel_rule( name = "foo", srcs = ["foo.cpp"], attr_bar
我正在开始使用 Bazel,如果有一种简单的方法可以集成 buildifier,我就在运行每次运行 bazel build 时? 最佳答案 您可以将此实现为测试规则,其中 ctx.file_actio
bazel test命令对标记为 size = small 的测试使用默认超时 75 秒在我的设置中(版本 0.12.0)(而 documentation 提到这是 60 秒) 有没有办法在 baze
$ python gencpp.py 此命令生成一个 cpp 文件 foo.cpp在工作目录中。 我想在 bazel 中运行此命令建之前可以包含foo.cpp在 cc_binary的 srcs属性。
一遍又一遍地阅读 Bazel 文档,以至于没有什么新鲜的地方,但我似乎无法掌握如何为 native 以外的变体设置配置和变体,例如--cpu 和--compilation_mode。 为了解释我对配置
我是一名优秀的程序员,十分优秀!