Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gcc 编译静态库时设置早期最低内核版本_Gcc_Glibc_Static Linking_Binutils_Gnu Toolchain - Fatal编程技术网

Gcc 编译静态库时设置早期最低内核版本

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兼容性实际上只能在一个方向上得到保证。(较旧的二进制文件适用于较新的系统;反之亦然,不一定如此。)

我的发行版(ArchLinux)最近增加了其工具链支持的最低Linux内核版本。我正在编译一个静态链接然后上传到web服务器的web应用程序,web服务器上的内核版本对于使用新工具链编译的静态库来说太旧了。(当我试图在服务器上运行静态二进制文件时,我遇到了一个分段错误。)有没有一种方法可以使用GNU工具链(GCC、binutils、glibc)编译应用程序,从而忽略需要更新内核版本的功能?

glibc兼容性实际上只能在一个方向上得到保证。(较旧的二进制文件适用于较新的系统;反之亦然,不一定如此。)

要保证二进制文件在较旧的系统上工作,请使用较旧的glibc编译链接。最简单的方法是找到较旧的发行版,但我建议设置一个“”或类似的交叉编译工具链,以不同于构建系统使用的libc为目标(这允许跨主机重复构建,而不管系统是什么)。

谢谢。我还发现了glibc的--enable内核选项,它支持使用早期内核