J'essayais de croiser dlib pour Raspberry Pi, en utilisant le compilateur arm-linux-gnueabihf.libstdC++ Erreur: 'GLIBCXX_3.4.22' non trouvé
après l'exécution avec succès de cmake
et make -j4
, j'ai couru python setup.py bdist_wheel --repackage
, qui a créé le besoin .so que je plus tard copiés sur mon Pi de /usr/lib
en utilisant scp
.
Maintenant, quand je lance import dlib
en IDLE, je reçois l'erreur suivante:
ImportError: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by dlib/dlib.so)
Voici le ouput de strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
:
GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20
Cela signifie que l'erreur est légitime, mais ma libstdC++ est déjà à sa dernière version sur le Pi. Que puis-je faire pour obtenir cette version 3.4.22 installée sur le Pi? Ou peut-être, si c'est possible, de le compiler à nouveau contre 3.4.20? Comment puis-je définir un indicateur de compilateur pour cela?
Note: J'ai posté ceci sur le site de RaspberryPi SE, mais on m'a suggéré de le demander ici. libstdc++ Error
Pour mon cas, j'ajoute '-static-libstdC++'. Par exemple, 'g ++ -static-libstdC++ main.cpp'. – Yves
Où stocke static-libstdC++? –
Je ne sais pas. Regardez ici: https://stackoverflow.com/questions/5216399/usr-lib-libstdc-so-6-version-glibcxx-3-4-15-not-found – Yves