运行/编译可执行Linux与Solaris

Dav*_*ell 3 c++ linux solaris binary-compatibility

如果我有在Solaris 8和10下编译的代码,现在有一个供应商想在Linux下使用我的bin/exe.可能存在兼容性问题吗?

我很确定我需要在Linux操作系统下编译/链接才能100%工作但我只是想知道是否有人可以告诉我为什么它不能在Linux上工作,即使exe有所有东西也在那里没有任何动态,因为它不需要任何进一步的运行它.除非我们讨论运行时库,否则如果存在不匹配可能会导致exe失败.

nos*_*nos 8

您必须在Linux上重新编译您的应用程序.

与Solaris相比,Linux是一个完全不同的运行时.即使您已静态编译应用程序,也会对这两个操作系统中的内核进行接口/系统调用.处理器架构也可能不同,例如SPARC与X86.

Solaris和Linux都支持大多数标准的C和Posix API,所以如果你没有使用Solaris独有的任何API,那么在Linux上重新编译通常不是什么大问题 - 但是你应该彻底地测试所有内容,并注意任何endianess,以及潜在的64位vs 32位问题.