草庐IT

go - 提交 Gazelle 生成的 `BUILD.bazel` 文件是最佳做法吗?

我有一个使用rules_go的Go项目(Bazel)构建项目。我正在使用Gazelle生成BUILD.bazel文件。将生成的BUILD.bazel文件提交到版本控制中是否被认为是最佳实践?还是在新结帐时和添加新文件时始终执行bazelrun//:gazelle是最佳实践? 最佳答案 是的,出于多种原因,提交构建文件通常是最佳做法。构建文件经常包含未生成的规则、注释和注释。例如,您可能需要编写一个genrule来替换gogenerate。或者您可以编写一个测试来检查源文件中的版权header是否是最新的。或者您可能想要调整您的某些图

go - 提交 Gazelle 生成的 `BUILD.bazel` 文件是最佳做法吗?

我有一个使用rules_go的Go项目(Bazel)构建项目。我正在使用Gazelle生成BUILD.bazel文件。将生成的BUILD.bazel文件提交到版本控制中是否被认为是最佳实践?还是在新结帐时和添加新文件时始终执行bazelrun//:gazelle是最佳实践? 最佳答案 是的,出于多种原因,提交构建文件通常是最佳做法。构建文件经常包含未生成的规则、注释和注释。例如,您可能需要编写一个genrule来替换gogenerate。或者您可以编写一个测试来检查源文件中的版权header是否是最新的。或者您可能想要调整您的某些图

android - TensorFlow Android 演示 : unable to build with Bazel, 无法读取 RELEASE.TXT

最近我一直在学习如何使用TensorFlow,想在我的电脑上设置Android演示,看看它们是如何工作的。我按照提供的说明进行操作here,唯一的区别是我通过AndroidStudio安装了AndroidSDK,并通过SDKManager安装了AndroidNDK。直到$bazelbuild//tensorflow/examples/android:tensorflow_demo,一切正常,但在那之后,我从终端收到了这个错误:ERROR:nosuchpackage'@androidndk//':CouldnotreadRELEASE.TXTinAndroidNDK:/home/me/.

java - 如何在 Bazel 中为 Android 项目添加 Maven 依赖项(例如 Volley、Gson)?

我现在是这样做的deps=[":tensorflow_native_libs","//tensorflow/contrib/lite/java:tensorflowlite","@androidsdk//com.android.support:appcompat-v7-25.0.0","@androidsdk//com.android.volley:volley:1.1.0","@androidsdk//com.google.code.gson:gson:2.6.2"],在android_binary中。但是我收到了这个错误:ERROR:/home/abhi/Desktop/Git/S

c++ - 如何使用 Eigen 和 Bazel 构建一个简单的 C++ 演示?

如何使用Eigen在使用Bazel构建的C++项目中(版本0.25.2)?我喜欢使用http_archive或git_repository获取Eigen依赖项。我试过以下方法:main.cpp#include#includeusingEigen::MatrixXd;intmain(){MatrixXdm(2,2);m(0,0)=3;m(1,0)=2.5;m(0,1)=-1;m(1,1)=m(1,0)+m(0,1);std::cout工作区workspace(name="EigenDemo")load("@bazel_tools//tools/build_defs/repo:http.b

c++ - Bazel 头文件代码生成器

我试图通过编写一个规则来执行生成器,将代码生成器添加到我的bazel构建中,但我坚持将生成的头文件作为包含路径依赖项添加到我尝试构建的库中。规则是这样的:def_impl(ctx):output=ctx.outputs.outinput=ctx.attr.defsmd_dir=list(ctx.attr.md_dir.files)[0]print("generating",output.path)ctx.action(outputs=[output],progress_message="Generating%s"%md_dir,command="pythoncodegen.py-md_

使用 gdb 和 bazel(和 emacs)进行 C++ 调试

我想调试用Bazel生成的可执行文件。gdb调试器丢失了Bazel生成的链接,无法向我显示C++源代码。如何解决?项目根目录是/home/.../Cpp/./Cpp/├──bazel-bin->/home/picaud/.cache/bazel/_bazel_picaud...├──bazel-Cpp->/home/picaud/.cache/bazel/_bazel_picaud...├──bazel-genfiles->/home/picaud/.cache/bazel/_bazel_picaud...├──bazel-out->/home/picaud/.cache/bazel/

c++ - 在 Windows 10 和 Visual Studio Community 2019 下使用 boost with Bazel

我已经建立了一个简单的C++程序,它使用了boost文件系统模块。为了构建程序,我使用Bazel0.25.0。我在Windows10x64下工作。我安装了VisualStudio2019CommunityEdition并将BAZEL_VC设置为E:\ProgramFiles(x86)\MicrosoftVisualStudio\2019\Community\VC。我已经安装了MSYS2shell。这是我的文件(也可以在GitHub上找到):工作区workspace(name="BoostFilesystemDemo")load("@bazel_tools//tools/build_de

go - 如何强制 Bazel 标记所有二进制文件?

--stamp的文档在BazelUserManual状态:Specifying--stampdoesnotforceaffectedtargetstoberebuilt,iftheirdependencieshavenotchanged.有没有办法强制构建受影响的目标,以便所有输出二进制文件具有相同的标记,即使它们的依赖关系没有改变?具体用例是我正在构建大量相关的Go二进制文件(使用rules_go),我想用相同的版本号可靠地标记它们(取自最新的gitcommithash).我可以事先做一个bazelclean,但这有点违背了使用Bazel的意义:)谢谢!

具有 bazel 构建的 protobuf 依赖项的 Google 云函数

如果我使用bazel构建依赖于protobuf的Go无服务器函数,bazel将使protobuf生成的go代码在我指定的导入路径中可用。Go的Google云函数需要使用go模块。如何将bazel创建的虚拟导入路径添加到我的go.mod文件中?部署到谷歌云的功能失败,因为无法解析虚拟导入。(Gcloud要求我上传我的go源代码,AWSlambdas允许我上传一个二进制文件,这样就可以了。)我猜我将不得不使用AWSlambdas,使用无服务器容器,或者编写一个genrule将proto生成代码的输出复制到我的源目录中,但我想避免这种丑陋。 最佳答案