readhat5下编译的程序在readhat4下运行提示Floating point exception.
确认为gcc版本冲突导致。
解决办法如下:
加入链接选项:
-Wl,--hash-style=sysv
[enjolras@localhost qt3test]$ gcc --help
用法:gcc [选项] 文件...
选项:
......
-Wl,<选项> 将逗号分隔的 <选项> 传递给链接器
......
键入gcc --help可以发现-Wl是传递给链接器的,故修改makefile的时候要在链接器处加入此选项
以下为修改后的qt自动生成的hello world makefile(仅仅保留了相关的部分,自动生成的makefile比较长):
......
LINK = g++ -Wl,--hash-style=sysv
all: Makefile $(TARGET)
#这里是链接器链接的语句,只要链接选项中加入了即可,如:上文中在LINK符号中加入(红色部分)
$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(OBJCOMP) $(LIBS)
make之后在RedHat4的虚拟机中测试,不再报Floating point exception