Gcc 编译静态库时设置早期最低内核版本
我的发行版(ArchLinux)最近增加了其工具链支持的最低Linux内核版本。我正在编译一个静态链接然后上传到web服务器的web应用程序,web服务器上的内核版本对于使用新工具链编译的静态库来说太旧了。(当我试图在服务器上运行静态二进制文件时,我遇到了一个分段错误。)有没有一种方法可以使用GNU工具链(GCC、binutils、glibc)编译应用程序,从而忽略需要更新内核版本的功能?glibc兼容性实际上只能在一个方向上得到保证。(较旧的二进制文件适用于较新的系统;反之亦然,不一定如此。) 要保证二进制文件在较旧的系统上工作,请使用较旧的glibc编译链接。最简单的方法是找到较旧的发行版,但我建议设置一个“”或类似的交叉编译工具链,以不同于构建系统使用的libc为目标(这允许跨主机重复构建,而不管系统是什么)。谢谢。我还发现了glibc的--enable内核选项,它支持使用早期内核Gcc 编译静态库时设置早期最低内核版本,gcc,glibc,static-linking,binutils,gnu-toolchain,Gcc,Glibc,Static Linking,Binutils,Gnu Toolchain,我的发行版(ArchLinux)最近增加了其工具链支持的最低Linux内核版本。我正在编译一个静态链接然后上传到web服务器的web应用程序,web服务器上的内核版本对于使用新工具链编译的静态库来说太旧了。(当我试图在服务器上运行静态二进制文件时,我遇到了一个分段错误。)有没有一种方法可以使用GNU工具链(GCC、binutils、glibc)编译应用程序,从而忽略需要更新内核版本的功能?glibc兼容性实际上只能在一个方向上得到保证。(较旧的二进制文件适用于较新的系统;反之亦然,不一定如此。)