GCC版本导致的Floating Point Exception

2018-03-2708:31:38来源:吴冬冬 评论 2,572 views

在嵌入式系统中经常遇到开发环境版本与程序运行时环境版本不一致,由于使用高版本的gcc glibc 编译后在低版本的glibc上运行导致,可能导致Floating Point Exception运行时错误。

这是由于现在的gcc在link的时候默认会采用选项--hash-style=gnu,而使用这种Hash表的方式可以大大提升动态链结时的效率。 而老版本的glibc本并未支持,我们只要在在程序连接选项中加上:

-Wl,--hash-style=sysv

就可以解决这个问题了。

注意: "-Wl"中的最后一个字符是字母L的小写形式,不是数字1哟。