ubuntu下编译的程序无法在red hat下运行?该怎么处理

ubuntu下编译的程序无法在red hat下运行?
#include <stdio.h>

int main()
{
    printf("sssss");
    return 0;
}
---------------
edit : main.o
gcc -o edit main.o
main.o : main.c
gcc -c main.c
-------------------

就这些代码,在red hat下无法运行,提示浮点数例外。
ubuntu的gcc版本是4.0,red hat的gcc版本是3.2。
难道是gcc版本造成的,如果要做移植的话该怎么办?


------解决方案--------------------
lz是把ubuntu上编译出的二进制文件放到red hat上运行?

------解决方案--------------------
的确是
解决方案是:将代码复制一份,编译。。。
------解决方案--------------------
加-s参数编译成静态链接的,再运行就没问题。
------解决方案--------------------
静态链接对于内核版本差别不大可以

linux各发行版都是各自构建的,打得补丁也不一样,所以不一定二进制兼容
------解决方案--------------------
还有个最重要因素——glibc的版本……
------解决方案--------------------
引用:
静态链接对于内核版本差别不大可以

linux各发行版都是各自构建的,打得补丁也不一样,所以不一定二进制兼容

很多人不知道gcc的configure不同会改变ABI
------解决方案--------------------
引用:
还有个最重要因素——glibc的版本……

感觉最重要的是本地的libgcc那些

这也是为什么Linux保证兼容性/性能的话,必须本地构建或链接

比如一些闭源驱动或者vmware tools之类,他们也是提供一些.o或者不太关键的源码编译链接的