因为C++没有定义编译生成产物的标准。所以不同编译器会编译出不同的产物,相同编译器在不同平台下也会编译出不同产物,以至于要想复用编译后的产物,必须限定相同平台相同编译器。
Linux发行版可以直接使用库,就是因为多数Linux发行版把编译器作为操作系统级提供的必要部件。如此一来,你从软件仓库中安装的库都一定是对应操作系统的编译器版本,你也就可以免编译直接使用这些库了。