首页 > 解决方案 > 使用 Bazel 构建后自动复制可执行文件

问题描述

假设我有以下目录布局:

.../
  root/
    bin/
      sdl.dll
    src/
      main/
        main.cpp
        BUILD
      WORKSPACE

还有一个 BUILD 文件,上面写着:

cc_binary(
    name = "test",
    srcs = ["main.cpp"]
)

我的构建命令行是:

bazel build //main:hello-world --symlink_prefix=/

我需要在我的 BUILD 文件中添加什么,以便将 test.exe(和 test.pdb,如果适用)复制到 bin(与 sdl.dll 一起)?

我查看了此页面并尝试使用--output_base但比我想要的更多的东西。

PS:在“Visual Studio”术语中,我希望将 $(OutDir) 或 postbuild 从 $(OutDir) 更改为 ..\bin

标签: c++bazel

解决方案


您不能直接对 Bazel 执行此操作。Bazel 出于密封原因不会写入您的源目录。解决方法是使用手动运行或使用bazel run.

另请参阅:如何将文件写入当前目录而不是 bazel-out


推荐阅读