我使用Linux->Arm crossbuild toolchainlibtensorflowlite_c.so在我的 Linux 機器上構建了一個 Arm TensorFlow 共享庫。
然后我切換到 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 版本?
uj5u.com熱心網友回復:
對每個 glibc 版本中的每個符號進行版本控制是沒有意義的,它會使所有glibc 符號不可用,并且您必須堅持使用一個 glibc 版本。
符號有一個@GLIBC_version,它是符號上次更改的版本。這樣你就可以使用更新的 glibc,如果符號沒有改變,你可以使用舊代碼。
當符號以非向后兼容的方式更改時,僅更改符號的版本。
您可以瀏覽https://abi-laboratory.pro/?view=timeline&l=glibc。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/479251.html
上一篇:ValueError:圖層“sequential_13”的輸入0與圖層不兼容:預期形狀=(無,21367,9000),找到形狀=(無,9000)
