我的目标是.a从 MediaPipe 项目中获取Linux 上的静态库,该项目是用 Bazel 构建的。据我所知,这样做没有 bazel 规则。我真的不想与 Bazel 集成 - 我希望它产生我需要的东西,并在其他非 Bazel 管理的东西中使用它。
我正在尝试将使用 Google 构建系统 Bazel 的MediaPipe(https://github.com/google/mediapipe)与一个用 Rust 编写的个人项目集成。我试图弄清楚如何.a从 bazel 构建系统中获取静态库 ( )。我四处搜索,发现有人说他们已经尝试过并做到了,但没有人发布他们所做的事情。
到目前为止,我的尝试是使 bazel 变得冗长(运行-s),然后查看它传递给编译最终二进制文件的命令,以便我可以使用它并修改它以构建一个静态库。我试过解析编译器命令 args 来挑选出所有的目标文件 ( .o) 并ar像这样链接它们ar rcs gpu.a $(grep -E '\.o' bazel-bin/custom/run_gpu-2.params)
该命令有效,但是当我尝试将其链接到 Rust 时,rust 失败了。
这是我的 build.rs
fn main() {
println!("cargo:rustc-link-search=/home/me/dev/mediapipe");
}
Run Code Online (Sandbox Code Playgroud)
这是我的主要
#[link(name = "gpu")]
extern "C" {
fn square(val: i32) -> i32;
}
fn main() {
let r …Run Code Online (Sandbox Code Playgroud)