什么是Bazel Dynamic Library搜索路径?

发布于 2025-01-29 20:05:26 字数 957 浏览 1 评论 0原文

我使用ldd命令通过Bazel打印出二进制构建,结果如下。

libexternal_Scom_Ugoogle_Uprotobuf_Slibprotobuf.so => /apollo/bazel-bin/cyber/../_solib_k8/libexternal_Scom_Ugoogle_Uprotobuf_Slibprotobuf.so (0x00007f5900b1c000)
    libexternal_Scom_Ugoogle_Uprotobuf_Slibprotobuf_Ulite.so => /apollo/bazel-bin/cyber/../_solib_k8/libexternal_Scom_Ugoogle_Uprotobuf_Slibprotobuf_Ulite.so (0x00007f59009f7000)
    libexternal_Szlib_Slibzlib.so => /apollo/bazel-bin/cyber/../_solib_k8/libexternal_Szlib_Slibzlib.so (0x00007f59009d8000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f59007d0000)
    libPocoFoundation.so.71 => /opt/apollo/sysroot/lib/libPocoFoundation.so.71 (0x00007f59003a5000)
    libatomic.so.1 => /usr/lib/x86_64-linux-gnu/libatomic.so.1 (0x00007f590019d000)

我的问题是我找到了ld_library_path没有路径,

/apollo/bazel-bin/cyber/../_solib_k8/

因此如何添加此路径以找到动态库?

I used the ldd command to print out the binary build through bazel and the result is as follows.

libexternal_Scom_Ugoogle_Uprotobuf_Slibprotobuf.so => /apollo/bazel-bin/cyber/../_solib_k8/libexternal_Scom_Ugoogle_Uprotobuf_Slibprotobuf.so (0x00007f5900b1c000)
    libexternal_Scom_Ugoogle_Uprotobuf_Slibprotobuf_Ulite.so => /apollo/bazel-bin/cyber/../_solib_k8/libexternal_Scom_Ugoogle_Uprotobuf_Slibprotobuf_Ulite.so (0x00007f59009f7000)
    libexternal_Szlib_Slibzlib.so => /apollo/bazel-bin/cyber/../_solib_k8/libexternal_Szlib_Slibzlib.so (0x00007f59009d8000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f59007d0000)
    libPocoFoundation.so.71 => /opt/apollo/sysroot/lib/libPocoFoundation.so.71 (0x00007f59003a5000)
    libatomic.so.1 => /usr/lib/x86_64-linux-gnu/libatomic.so.1 (0x00007f590019d000)

My question is I found LD_LIBRARY_PATH path not have

/apollo/bazel-bin/cyber/../_solib_k8/

So how is this path added to find the dynamic library?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜唯美灬不弃 2025-02-05 20:05:26

我终于发现Bazel不会更改ld_library_path,但是如果要添加使用,它也可以工作。

Bazel写下了通往二进制文件的路径,该路径通过调用gcc -rpath来实现此功能,以便在链接时从rpath搜索动态库。 https://en.wikipedia.org/wiki/rpath

I finally found out that bazel doesn't change LD_LIBRARY_PATH, but if you want to add use it, it works too.

bazel writes the path to binary, which implements this function by calling gcc -rpath, so that the dynamic library will be searched from rpath when linking. https://en.wikipedia.org/wiki/Rpath

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文