- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 ARM 的 10.3-2021.07 GCC toolchain 交叉编译 Raspberry Pi 4B (特别是 this 文件未压缩到 ARMGCC
)。我也在使用最新的 Raspberry 操作系统 image作为 sysroot(循环安装到 RPISYSROOT
)。主机是 Windows 主机上的 Ubuntu Xenial VM。
使用此编译行时(为便于阅读而编辑,CFLAGS
受 Pi 的 /proc/cpuinfo
、gentoo 和 GNU 启发):
${ARMGCC}/bin/arm-none-linux-gnueabihf-g++ -std=c++11 \
-v -w -fexceptions -fpermissive --sysroot=$RPISYSROOT \
-pipe -mcpu=cortex-a72 -mfpu=neon-vfpv4 -mfloat-abi=hard -g \
-I . -I .. -I libA/include -I libB/include \
-I ${ARMGCC}/arm-none-linux-gnueabihf/libc/usr/include \
-I ${RPISYSROOT}/usr/include/arm-linux-gnueabihf \
-c file.cpp -o obj/debug/file.o
我收到以下错误:
$ARMGCC/arm-none-linux-gnueabihf/libc/usr/include/bits/mathcalls-helper-functions.h:20:24: error: ‘__fpclassify’ has not been declared
20 | __MATHDECL_ALIAS (int, __fpclassify,, (_Mdouble_ __value), fpclassify)
| ^~~~~~~~~~~~
我在 ARMGCC
、RPISYSROOT
和 Raspberry Pi 的 tools 中看到了 __fpclassify
的使用git repo,它们似乎是相同文件的所有迭代:
usr/include/math.h
usr/include/bits/mathcalls-helper-functions.h
(路径可能略有不同)。但是,这些都没有提供 __fpclassify
的声明或实现。这似乎来自 libm
,我认为它已经成为 libc
的一部分一段时间了。我已经安装了 libc到RPISYSROOT
。
我发现的唯一实现来自 uCLibc但我认为混合 libc 实现不是一个好主意。
此外,由于 Raspberry Pi 是 armhf,我应该看到这些错误吗?
最佳答案
这里的问题是两组 header 的混合,构建链的 header (ARMGCC
) 和指定系统根 (RPISYSROOT
) 的 header 。特别是,假设一个 file.cpp
看起来像这样:
#include <cmath>
void function(void) {}
您的编译命令将执行以下嵌套包含:
${ARMGCC}/arm-none-linux-gnueabihf/include/c++/10.3.1/cmath
${RPISYSROOT}/usr/include/math.h
${ARMGCC}/arm-none-linux-gnueabihf/libc/usr/include/bits/mathcalls-helper-functions.h
您收到的特定错误(提到 __fpclassify
)有点误导,因为此时最相关的未定义是 __MATHDECL_ALIAS
类函数宏,它在 ${ARMGCC}/arm-none-linux-gnueabihf/libc/usr/include/math.h
中定义。
如果您查看 RPISYSROOT
下的同一个文件,您会发现它使用的是 __MATHDECL_1
:
/* Classify given number. */
__MATHDECL_1 (int, __fpclassify,, (_Mdouble_ __value))
__attribute__ ((__const__));
在 ${RPISYSROOT}/usr/include/math.h
中定义。
因此,您需要做的是确保包含 ${RPISYSROOT}/usr/include/arm-linux-gnueabihf/bits/mathcalls-helper-functions.h
而不是 ARMGCC
对应项,您可以通过更改编译命令中包含的顺序来实现。将您的命令缩减为最基本的命令,我们有:
${ARMGCC}/bin/arm-none-linux-gnueabihf-g++ \
--sysroot=${RPISYSROOT} \
-I ${ARMGCC}/arm-none-linux-gnueabihf/libc/usr/include \
-I ${RPISYSROOT}/usr/include/arm-linux-gnueabihf \
-c file.cpp \
-o obj/debug/file.o
如上失败。将其更改为:
${ARMGCC}/bin/arm-none-linux-gnueabihf-g++ \
--sysroot=${RPISYSROOT} \
-I ${RPISYSROOT}/usr/include/arm-linux-gnueabihf \
-I ${ARMGCC}/arm-none-linux-gnueabihf/libc/usr/include \
-c file.cpp \
-o obj/debug/file.o
编译成功。
事实上,对于这种情况,我们可以删除对任何 ARMGCC
的显式引用,包括以下内容:
${ARMGCC}/bin/arm-none-linux-gnueabihf-g++ \
--sysroot=${RPISYSROOT} \
-I ${RPISYSROOT}/usr/include/arm-linux-gnueabihf \
-c file.cpp \
-o obj/debug/file.o
它也可以编译。
关于raspberry-pi - 没有在 armhf 中实现 __fpclassify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68801367/
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在使用带有Grove Pi +(1.2.2固件)的Raspberry Pi 3 B模型和用于Robots Image的Raspbian。 我在I2C-1端口中插入了多 channel 气体传感器,
这看起来非常简单,但我似乎无法弄清楚如何将 -Pi 和 Pi 之间的角度映射到 0 到 2Pi 的范围内。我尝试使用 np.select 但由于某种原因它卡住了我的程序。我需要这个范围内的角度,因为它
在使用 SciPy 和 NumPy 的项目中,我应该使用 scipy.pi , numpy.pi , 或 math.pi ? 最佳答案 >>> import math >>> import numpy
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我有一个运行 Raspbian 的 Raspberry Pi 1。我尝试在 Raspberry Pi 3 上运行 SD 卡,但它没有启动。 我已经阅读了有关升级 Raspberry Pi 2 安装以在
#include using namespace std; #define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #d
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我目前正在尝试RadiusNetworks发布的Raspberry Pi iBeacon教程,网址为 http://developer.radiusnetworks.com/2013/10/09/ho
我无法在运行Raspbian的Raspberry Pi 3上安装我创建的 Electron 应用程序。我已经使用了electronic-packager来创建软件包,然后创建了一个debian安装程序
我想在Linux上为Raspberry Pi 1设置交叉编译环境。 特别是我想尝试最新版本,即Raspbian测试+ Qt5开发分支。 这个问题: How can I create a modern
我想要从我的 Raspberry Pi Zero 到手机的低延迟流式传输。据我了解,移动浏览器不支持 RTMP 流式传输,HLS 流式传输具有高延迟,而 webRTC 是我最好的选择。 有谁知道从零开
我的公司使用 Raspberry Pi 3 作为产品中的嵌入式 Controller 。用户不会优雅地关闭它,他们只是扳动一个开关。为避免损坏,/boot 和/root 文件系统是只读的。这似乎是防弹
如何使用 Raspberry Pi 作为 b/w USB Tethered 手机和路由器的桥接器,使用“以太网电缆 b/w Raspberry Pi 和路由器”和“USB 电缆 b/w 手机和 Ras
我正在尝试在Raspberry Pi 3上安装Rakudo Star 2018.04。 我做: sudo perl Configure.pl --gen-moar --gen-nqp --prefix
我正在寻找一些可以有效完成的不错的 C 代码: while (deltaPhase >= M_PI) deltaPhase -= M_TWOPI; while (deltaPhase T Mod(T
我正在尝试为 raspberry Pi 构建跨环境以在 Eclipse CDT for windows 上构建二进制文件。 我得到了用于访问 GPIO 的 Wiring Pi,我需要使用“Window
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我正在寻找一些可以有效完成的不错的 C 代码: while (deltaPhase >= M_PI) deltaPhase -= M_TWOPI; while (deltaPhase T Mod(T
这个问题在这里已经有了答案: C: How to wrap a float to the interval [-pi, pi) (15 个答案) 关闭 9 年前。 我想知道是否可以定义一个只能取 -
我是一名优秀的程序员,十分优秀!