我已经在我的Linux机器上使用TensorFlow构建了一个Arm libtensorflowlite_c.so共享库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_2.33、GLIBC_2.32、GLIBC_2.34。这怎么可能呢?我只希望只需要一个GLIBC版本?
发布于 2022-05-20 17:49:54
在每个glibc版本中对每个符号进行版本化是没有意义的,它将使所有glibc符号不可用,而且您必须坚持使用一个glibc版本。
该符号具有一个@GLIBC_version,这是最后一次更改符号的版本。这样您就可以使用更新的glibc,如果符号没有改变,您可以在上面使用旧代码。
当符号以非向后兼容的方式变化时,只有这样,符号的版本才会被更改。
https://stackoverflow.com/questions/72322783
复制相似问题