我的应用程序静态链接到几个库,如libpng,zlib,jpeglib,freetype等 . 我不使用任何IDE或构建工具,如CMake,只是makefile . 我在Linux,Android和Mac OS上使用gcc,在Windows上使用Visual C.我的目标架构是x86,x86_64,powerpc和arm . 我的应用程序和链接库是纯C,没有C.

在安装新版本的gcc或Visual C之后,我通常会重新编译所有这些链接库,我将我的应用程序静态链接到新的编译器版本,尽管我一直想知道这是否真的有必要 .

这就是为什么我想提出这个问题:静态链接库是否必须使用与我的应用程序相同的编译器版本进行编译,还是可以使用较旧的编译器版本进行编译而不会造成任何损害?