与ARM上的TensorFlow链接:glibc_2.32,glibc_2.33,glibc_2.34-哪一个?

发布于 2025-01-30 19:09:06 字数 754 浏览 1 评论 0 原文

我使用 linux-> arm crossbuild工具链

然后,我切换到ARM平台,并尝试构建一个与 libtensorflowlite_c.so 链接的应用程序。但是,链接步骤给我几个glibc链接错误:

/usr/bin/ld: libtensorflowlite_c.so: undefined reference to `fstat@GLIBC_2.33'
/usr/bin/ld: libtensorflowlite_c.so: undefined reference to `__libc_single_threaded@GLIBC_2.32'
/usr/bin/ld: libtensorflowlite_c.so: undefined reference to `pthread_join@GLIBC_2.34'

我知道我的手臂系统已经过时了,比tensorflow lib构建的链接系统更古老,但是:错误输出中有几个glibc版本:glibc_2.33:glibc_2.33 ,glibc_2.32,glibc_2.34。那怎么可能?我希望只需要一个GLIBC版本吗?

I've built an Arm TensorFlow shared library libtensorflowlite_c.so on my Linux machine using the Linux->Arm crossbuild toolchain.

Then I switched to Arm platform and tried to build an app linked with libtensorflowlite_c.so. However, the link step gives me several GLIBC link errors:

/usr/bin/ld: libtensorflowlite_c.so: undefined reference to `fstat@GLIBC_2.33'
/usr/bin/ld: libtensorflowlite_c.so: undefined reference to `__libc_single_threaded@GLIBC_2.32'
/usr/bin/ld: libtensorflowlite_c.so: undefined reference to `pthread_join@GLIBC_2.34'

I understand that my Arm system has outdated GLIBC, older than the one from the TensorFlow lib was built with, however: there are several GLIBC versions mentioned in the error output: GLIBC_2.33, GLIBC_2.32, GLIBC_2.34. How can that be? I would expect only one GLIBC version required?

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

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

发布评论

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

评论(1

巷子口的你 2025-02-06 19:09:06

在每个glibc版本中版本构造每个符号毫无意义,它将使所有 all glibc符号不可用,并且您必须坚持一个glibc版本。

该符号具有 @glibc_version ,这是符号上次更改的版本。这样,您可以使用较新的glibc,如果符号不更改,则可以在其上使用旧代码。

当符号以非兼容的方式更改时,只有这样,符号的版本才会更改。

您可以浏览

There is no point in versioning each symbol in each glibc release, it would make all glibc symbols unavailable and you would have to stick to exactly one glibc version.

The symbol has a @GLIBC_version which is the version the symbol was last changed. That way you can use newer glibc, and if the symbol does not change, you can use old code on it.

When the symbol changes in a non-backward-compatible way, only then the version of the symbol is changed.

You can browse https://abi-laboratory.pro/?view=timeline&l=glibc .

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