我正在尝试使用 Raspberry Pi 的工具链交叉编译 dlib,并将 SD 卡安装到我的 Linux 主机上。
成功构建和安装后,我启动我的 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
。
如果可能的话,我可以在主机上降级 libstdc++ 使其支持的最高版本为 3.4.20 吗?如何?
主持人:
操作系统:Ubuntu 17.04 64位(amd64)
交叉编译环境:官方工具链托管在这里:树莓派工具
另一件可能有帮助的事情是,我将 SD 卡(包含 Raspbian 操作系统)安装到我的主机上,然后使用 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网站上,但被建议转移问题。