爱技术 & 爱分享
爱蛋蛋 & 爱生活

Floating point exception

Linux下的floating point exception错误解析

很多人也许都碰到过这样的错误:

linux下程序运行报错:Floating point exception

其实这个问题很容易排查,绝大多数情况情况都是逻辑的除零问题,如:

c = a/b;c = a%b;

如果这里面的b不小心是0,则一定会出现Floating point exception的问题,大家可以检查检查啦!

当然如果跑起来都没有到这些代码的部分就报错,很有可能是版本的原因:

同一个程序在一台高版本Linux上运行时没有问题,而在另一台低版本机器上运行报Floating Point Exception时,那么这极有可能是由高版本gcc链接造成的。

高版本的gcc在链接时采用了新的哈希技术来提高动态链接的速度,这在低版本中是不支持的。

因此会发生这个错误。gcc就是一个编译器。编译出来的软件在低版本操作系统上有些技术不支持造成这个原因。

解决方案:

在链接的时候添加选项-Wl,–hash-style=sysv

例如 gcc -Wl,–hash-type=sysv -o test test.c

赞(0) 传送门
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。编程日志 » Floating point exception
分享到: 更多 (0)

游戏 && 后端

传送门传送门