gpt4 book ai didi

gcc - 对 `__aeabi_ddiv'和 friend 的 undefined reference -在没有stdlib的情况下使用-mfloat-abi = hard进行构建

转载 作者:行者123 更新时间:2023-12-04 07:37:25 28 4
gpt4 key购买 nike

我正在尝试为Cortex-M4F建立一个项目。该芯片具有FPU,因此我使用-mfpu=fpv4-sp-d16 -mfloat-abi=hard进行构建,并且不使用任何库来节省空间,因此我使用-nostdlib -fno-builtin

现在我想使用浮点运算,但是这样做时出现链接器错误:

led1642gw_gain.c:(.text.led_calculateGain+0xc): undefined reference to `__aeabi_f2d'
led1642gw_gain.c:(.text.led_calculateGain+0x24): undefined reference to `__aeabi_ddiv'
led1642gw_gain.c:(.text.led_calculateGain+0x36): undefined reference to `__aeabi_dsub'
led1642gw_gain.c:(.text.led_calculateGain+0x48): undefined reference to `__aeabi_ddiv'
led1642gw_gain.c:(.text.led_calculateGain+0x54): undefined reference to `__aeabi_d2f'
led1642gw_gain.c:(.text.led_calculateGain+0x9e): undefined reference to `__aeabi_f2d'
led1642gw_gain.c:(.text.led_calculateGain+0xb6): undefined reference to `__aeabi_ddiv'
led1642gw_gain.c:(.text.led_calculateGain+0xc8): undefined reference to `__aeabi_dsub'
led1642gw_gain.c:(.text.led_calculateGain+0xda): undefined reference to `__aeabi_ddiv'
led1642gw_gain.c:(.text.led_calculateGain+0xe6): undefined reference to `__aeabi_d2f'
led1642gw_gain.c:(.text.led_calculateGain+0x10c): undefined reference to `__aeabi_f2d'

这是为什么?如果我理解正确,它不必依赖库函数,而可以使用ARM native FPU指令。

最佳答案

您的内核支持单精度浮点指令,但是您的代码可以使用 double 浮点。

您会注意到所有缺少的__aeabi东西都有提到的“d”( double )。

如果您的代码中有浮点字面量,则按照C标准,它们被视为 double 。您可以通过在文字的末尾添加fF来将它们强制为单精度范围。

2.13.3 Floating literals: The type of a floating literal is double unless explicitly specified by a suffix. The suffixes f and F specify float...

关于gcc - 对 `__aeabi_ddiv'和 friend 的 undefined reference -在没有stdlib的情况下使用-mfloat-abi = hard进行构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26490587/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com