在linux内核模块中,我有以下代码。
float temp
temp = some_function();
if(temp < 0.0f) {
printk("error");
}
我正在使用arm
工具链
arm-none-linux-gnueabi-
平台进行交叉编译
我在此行if(temp < 0.0f) {
对__aeabi_fcmplt
的未定义引用
我不明白为什么会发生这种情况。我是否缺少makefile中的任何链接?
答案 0 :(得分:5)
最后我检查了Linux内核中不允许浮点数。由于您正在构建的cpu arch和ABI不支持硬件浮点,因此GCC正在生成对内核中不可用的软浮点函数的调用。