Raspberry Piのツールチェーンを使用してdlibをクロスコンパイルし、LinuxホストにSDカードをインストールしようとしています。
正常にビルドしてインストールした後、Piを起動して実行しました。
python -c 'import dlib'
エラー出力は次のとおりです。
ImportError: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by dlib/dlib.so)
Raspberry Piで実行すると、次のような結果が得られます。
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
GLIBCXX_DEBUG_MESSAGE_LENGTH
どうなりますか?この問題をどのように解決できますか?私のPiではlibstdc++
最新バージョンです。
期待どおりに文字列を持つ私のホストに問題がありますかGLIBCXX_3.4.22
?
可能であれば、サポートされているトップバージョンが3.4.20になるようにホストシステムでlibstdc ++をダウングレードできますか?どのように?
所有者:
オペレーティングシステム:Ubuntu 17.04 64ビット(amd64)
クロスコンパイル環境:公式ツールチェーンは次の場所でホストされています。ラズベリーパイツール
役に立つもう1つのことは、SDカード(Raspbian OSを含む)をホストコンピュータにマウントし、cmakeツールチェーンファイルを使用してsysroot
SDカードの場所に設定したことです。
出力dpkg -l|grep 'gcc.*arm'
:
abhishek@K ~/rpi
$ dpkg -l|grep 'gcc.*arm'
ii gcc-6-arm-linux-gnueabihf 6.3.0-12ubuntu2cross1 amd64 GNU C compiler
ii gcc-6-arm-linux-gnueabihf-base:amd64 6.3.0-12ubuntu2cross1 amd64 GCC, the GNU Compiler Collection (base package)
ii gcc-arm-linux-gnueabihf 4:6.3.0-2ubuntu1 amd64 GNU C compiler for the armhf architecture
ii libgcc-6-dev-armhf-cross 6.3.0-12ubuntu2cross1 all GCC support library (development files)
ii libgcc1-armhf-cross 1:6.3.0-12ubuntu2cross1 all GCC support library
ノート:ラズベリーファイSEホームページに投稿しましたが、質問を移すようアドバイスをいただきました。