小编Ani*_*sto的帖子

如何将文件写入当前目录而不是打包

我有以下目录结构:

my_dir
|
 --> src
|    |
|     --> foo.cc
|     --> BUILD
|
 --> WORKSPACE
|
 --> bazel-out/ (symlink)
| 
| ...
Run Code Online (Sandbox Code Playgroud)

src/BUILD 包含以下代码:

cc_binary(
    name = "foo",
    srcs = ["foo.cc"]
)
Run Code Online (Sandbox Code Playgroud)

该文件使用实用程序使用常规方式foo.cc创建一个命名文件。bar.txt<fstream>

但是,当我调用Bazel时,bazel run //src:foobar.txt创建并放置文件,bazel-out/darwin-fastbuild/bin/src/foo.runfiles/foo/bar.txt而不是将其放置在my_dir/src/bar.txt原始源所在的位置。

我尝试将一个outs字段添加到foo规则中,但是Bazel抱怨这outs不是的公认属性cc_binary

我还考虑过创建filegroup规则,但是没有deps字段可以声明foo为这些文件的依赖项。

如何确定cc_binary放置规则所生成的文件my_dir/src/bar.txt而不是bazel-out/...

c++ file-io rules output bazel

5
推荐指数
1
解决办法
1908
查看次数

标签 统计

bazel ×1

c++ ×1

file-io ×1

output ×1

rules ×1