C语言 与TensorFlow在臂上的链接:GLIBC_2.32, GLIBC_2.33, GLIBC_2.34 -哪个?



我在我的Linux机器上使用Linux->Arm交叉构建工具链构建了一个Arm TensorFlow共享库libtensorflowlite_c.so

然后我切换到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'

我知道我的Arm系统有过时的GLIBC,比TensorFlow库构建的GLIBC更老,但是:错误输出中提到了几个GLIBC版本:GLIBC_2.33, GLIBC_2.32, GLIBC_2.34。这怎么可能呢?我希望只需要一个GLIBC版本?

在每个glibc版本中对每个符号进行版本控制是没有意义的,这将使所有glibc符号不可用,您将不得不坚持使用一个glibc版本。

符号有一个@GLIBC_version,这是符号最后更改的版本。这样你就可以使用较新的glibc,如果符号没有改变,你可以在它上面使用旧的代码。

当符号以非向后兼容的方式改变时,只有当符号的版本被改变时,

您可以浏览https://abi-laboratory.pro/?view=timeline&l=glibc .

相关内容

  • 没有找到相关文章

最新更新