在Linux编译好的软件可不可以直接给其他UNIX平台使用？
纯小白，Linux编译好的二进制软件和FreeBSD或其他UNIX发行版编译出来都有so，而且打包无非就是tar,gz/tar.xz之类的文件，那么是不是说明只要在Linux/FreeBSD/Solaris上编译出来，就可以在所有UNIX发行版上使用？
原则上不行，因为他们本来就没有设计为直接使用。他们的二进制接口并不一定完全兼容。

实际上，部分场景可能可以。主要情况大概三种：

- 你编译软件时，本身使用了某种能够在其它平台直接运行的输出格式（比如APE之类），能够在目标平台运行。

- 目标平台的操作系统本身可以识别Linux应用格式并试图按照Linux的方式兼容运行。（这个还真有）

- 目标平台制定了一个完全与Linux一致的二进制格式，因此可以直接运行。

其它情况下，一般需要拿源代码到目标平台重新编译才能使用。

所以当年的C语言本来就是为了跨平台而设计的，因为当时所谓的跨平台，指的就是各种不同风格的Unix。这叫源码级跨平台，而不是二进制跨平台。