- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在对 QT 应用程序进行从 Debian (Stretch) PC 到 Debian (Jessie) BeagleBone Black 的交叉构建,当我执行此操作时,我收到了消息
/home/bbuser/totemguard/totemguard: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /home/bbuser/totemguard/totemguard)
我看到 armhf g++ 版本是 6.1,所以我安装了 4.9.2-10(与我在 BeagleBone Black 上安装的相同)并重新编译我的代码,结果相似(不同的 GLIBXX 版本):
/home/bbuser/totemguard/totemguard: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/bbuser/totemguard/totemguard)
阅读ABI Policy and Guidelines , GLIBCXX_3.4.21 的 G++ 版本是 5.1.0:
GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8
GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9
GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10
但我从未在主机 PC 或 BeagleBone Black 开发板上安装 5.1 版本。
列出/usr/lib/arm-linux-gnueabihf/目录可以看到只有GCC 4.9.0和GCC 6.1.0 libstdc++版本:
lrwxrwxrwx 1 root root 19 ago 3 15:53 libstdc++.so.6 -> libstdc++.so.6.0.22
-rw-r--r-- 1 root root 658064 dic 27 2014 libstdc++.so.6.0.20
-rw-r--r-- 1 root root 1019632 ago 3 15:53 libstdc++.so.6.0.22
这个问题在从 jessie 到 stretch 的发行版升级后开始,我无法升级 beaglebone black gcc 版本。
我能做什么?
编辑 1:在测试板 (BeagleBone Black) 上,我添加了拉伸(stretch)存储库并执行了以下操作:
bbuser@beaglebone:~/totemguard$ sudo apt-cache policy libstdc++6
libstdc++6:
Installed: 4.9.2-10
Candidate: 6.1.1-11
Version table:
6.1.1-11 0
500 http://ftp.us.debian.org/debian/ stretch/main armhf Packages
*** 4.9.2-10 0
500 http://ftp.us.debian.org/debian/ jessie/main armhf Packages
100 /var/lib/dpkg/status
bbuser@beaglebone:~/totemguard$ sudo apt-get install libstdc++6
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
gcc-6-base
The following NEW packages will be installed:
gcc-6-base
The following packages will be upgraded:
libstdc++6
1 upgraded, 1 newly installed, 0 to remove and 726 not upgraded.
Need to get 517 kB of archives.
...
应用程序运行良好(未经过 100% 测试,但未出现任何错误)。这仍然是一个测试板,我不能在生产板上做同样的事情。
最佳答案
解决方案 1)使用 -static(完整库)或仅编译 libstdc++ 作为二进制文件的静态
解决方案 2) 使用二进制文件分发适当的 libstdc++ 版本(可能使用 LD_PRELOAD)
解决方案 3)使用完全相同的 g++ libstdc++ 版本进行交叉编译(至少匹配)
通常更好的方法是使用解决方案 1) - 跨发行版升级不会有问题
关于c++ - 针对特定版本的 armhf g++ 进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39985080/
我有使用 opencv-2.4.5 在 gentoo x64 上运行的代码: VideoCapture cap; cap.set(CV_CAP_PROP_FPS , 25); cap.open(0);
但是我交叉编译了 ARM 内核而不是 ARMHF(对于我的 Cubietruck)。我遵循了本教程: https://romanrm.net/a10/cross-compile-kernel 如何确定
我正在对 QT 应用程序进行从 Debian (Stretch) PC 到 Debian (Jessie) BeagleBone Black 的交叉构建,当我执行此操作时,我收到了消息 /home/b
Raspberry Pi Type 3 具有 64 位 CPU,但其架构不是 arm64 而是 armhf。arm64 和 armhf 有什么区别? 最佳答案 armhf 代表“arm hard fl
我终于在 Ubuntu Xenial x86_64 主机上交叉编译并链接了一个二进制文件,以便在 Raspberry Pi 4 的 armhf 上运行。 我的工具链来自 ARM 并放置在 $TOOLC
我在 x86 上试图交叉编译一个用 C++ 编写的用于 armhf 的 apache thrift 程序。我通过 gcc-arm-linux-gnueabihf 安装了 g++-arm-linux-g
我正在使用 ARM 的 10.3-2021.07 GCC toolchain 交叉编译 Raspberry Pi 4B (特别是 this 文件未压缩到 ARMGCC)。我也在使用最新的 Raspbe
我正在尝试编译 crypto++ 库以运行 armhf 架构。我正在按照此 answer 中提供的方法进行操作.我调整了 setenv-embed.sh 以匹配我的系统配置。运行 的输出。 ./set
我想交叉编译库 crypto++ 以部署在运行 Debian 的 beaglebone 上。我的主机以 64 位配置运行 Ubuntu 14.04 LTS。 当我从eclipse调用make命令时,我
在这种情况下,如何修复未满足的依赖项?我关注了很多要求我执行以下操作的文章。但没有任何作用!我不明白如何手动解决问题。 sudo apt-get clean sudo apt-get autoclea
我想在 Raspberry Pi(ARM 架构)上运行的 Alpine Linux 上安装 Kubernetes。到目前为止,我只找到了适用于 x86_64 的 K8s 包,但没有找到适用于 armh
我安装了 qt4-qmake:armhf 和 qt5-qmake:armhf 但我无法手动将其添加到 Qt Creator 中的 Qt 版本。我收到错误: The qmake executable c
这听起来可能很愚蠢,但这个问题困扰了我很长时间。 大家都知道 armel 二进制与 armhf 不兼容。 但我可以将 armel Linux 内核(从 armel 交叉编译器构建)和 armhf ro
我之前已经能够让它工作,因为我有一个相同的系统在运行。我找不到我丢失的东西。 我已经更改了权限并检查了通过 ldd 引用的库是否存在,但得到以下信息: $ ls -l ... -rwxr-xr-x 1
我已经在我的 Minix Neo X5 设备上安装了 Picuntu Linux(基于 Ubuntu),但我在安装 Google talk 插件(Google Hangout 视频 session 需
在 Ubuntu 上安装 CUDA 时,我在终端中运行了以下命令: sudo sh -c 'echo "foreign-architecture armhf">>/etc/dpkg/dpkg.cfg.
有没有办法在 armhf 系统(Ubuntu 12.10 for armhf)上加载为 arm(el) 编译的共享对象?对于可执行文件,我通过创建以下符号链接(symbolic link)解决了问题
我正在通过这种方式在 Raspberry Pi 3B+ 上安装最新版本的 alpine-pkg-glibc: # Install Dependencies RUN apk --no-cache add
我正在尝试在我的笔记本电脑上安装 libluetooth-dev,但不是 x86 版本,而是 armhf 版本。我在 Ubuntu 16.04这是我尝试过的方法: sudo dpkg --add-ar
出于开发目的,我需要创建一个模拟 BeagleBoneBlack 的虚拟机。 我想使用 Oracle VirtualBox 创建一个虚拟机,但我不确定我需要下载哪个版本的 Wheezy。在 Debia
我是一名优秀的程序员,十分优秀!