System: Raspberry pi 4 2GB mit Raspbian 64Bit Beta.
Ich habe ein Pytorch wheel gefunden, welches gepasst hat und sich installieren lies.
Es wurde allerdings cross-compiled mit einem Gcc/G++-9.1, welches nicht verfügbar war.
Ich habe es daher nachinstalliert und als default gesetzt, gcc -v gibt nun die gewünsche Version 9.1 aus.
Die dazugehörige libstdc++ wird jedoch noch nicht genutzt, weswegen mein Python testscript welches pytorch nutzt crasht.
Die Lösung liegt eigentlich recht nahe. Laut den Docs habe ich ja die richtige Version verfügbar: https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html. Auch strings /opt/gcc-9.1.0/lib/libstdc++.so | grep GLIBCXX gibt (unter anderen) GLIBCXX_3.4.26 aus.
Es geht also nur daru, dass das System/Programm die richtige libstdc++ unter /opt/gcc... statt unter /usr/lib nutzt.
Wie bekomme ich das hin? Folgendes setzten vom LD_LIBRARY_PATH hat nicht geholfen:
echo $LD_LIBRARY_PATH
/opt/gcc-9.1.0/lib:
Ich habe testweise auch das bisherige libstdc++ in /usr/lib entfernt und ein symlink nach /opt/.. eingesetzt.
Nun erhalte ich den folgenden Fehler.
Ich habe ein Pytorch wheel gefunden, welches gepasst hat und sich installieren lies.
Es wurde allerdings cross-compiled mit einem Gcc/G++-9.1, welches nicht verfügbar war.
Ich habe es daher nachinstalliert und als default gesetzt, gcc -v gibt nun die gewünsche Version 9.1 aus.
Die dazugehörige libstdc++ wird jedoch noch nicht genutzt, weswegen mein Python testscript welches pytorch nutzt crasht.
Python:
Traceback (most recent call last):
File "inference.py", line 1, in <module>
import torch
File "/home/pi/.local/lib/python3.7/site-packages/torch/__init__.py", line 81, in <module>
from torch._C import *
ImportError: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /home/pi/.local/lib/python3.7/site-packages/torch/lib/libtorch_python.so)
Die Lösung liegt eigentlich recht nahe. Laut den Docs habe ich ja die richtige Version verfügbar: https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html. Auch strings /opt/gcc-9.1.0/lib/libstdc++.so | grep GLIBCXX gibt (unter anderen) GLIBCXX_3.4.26 aus.
Es geht also nur daru, dass das System/Programm die richtige libstdc++ unter /opt/gcc... statt unter /usr/lib nutzt.
Wie bekomme ich das hin? Folgendes setzten vom LD_LIBRARY_PATH hat nicht geholfen:
echo $LD_LIBRARY_PATH
/opt/gcc-9.1.0/lib:
Ich habe testweise auch das bisherige libstdc++ in /usr/lib entfernt und ein symlink nach /opt/.. eingesetzt.
Nun erhalte ich den folgenden Fehler.
Python:
Traceback (most recent call last):
File "inference.py", line 1, in <module>
import torch
File "/home/pi/.local/lib/python3.7/site-packages/torch/__init__.py", line 81, in <module>
from torch._C import *
ImportError: libstdc++.so.6: wrong ELF class: ELFCLASS32
Zuletzt bearbeitet: