linux – 为2.4.0内核构建二进制(telnet),i586架构
我正在尝试交叉编译二进制文件以在旧的
Linux发行版(内核2.4.25,i586体系结构)上使用.
我采取的步骤 >我已经下载了landley i586交叉编译器(http://landley.net/aboriginal/downloads/binaries/) 我把它与已经在旧Linux系统上的二进制文件进行了比较,输出完全相同:ELF 32位LSB可执行文件,动态链接,解释器lib / ld-linux.so .2,对于GNU / Linux 2.4.0,被剥离 我面临的问题 我编译的telnet二进制文件不能在旧的Linux系统上运行.抛出的错误只是“分段错误”.谷歌搜索这个错误得知它可能是由于体系结构的差异(i586?),但我不知道如何解决它,因为’file’命令输出完全相同的工作二进制文件以及失败的二进制文件. 然后我偶然发现了这个话题:GCC Cross compile to a i586 architecture (Vortex86DX),但由于没有追求,我不确定我是否应该为i586编译所有工具链以及我究竟需要做到这一点. 解决方法
是否有一个特定的原因要进行交叉编译而不仅仅是编译通用的32位i386?如果CPU不支持某些编译器优化,您可能需要禁用它们,但您可能不需要创建静态链接的二进制文件.
用于编译32位(-m 32)的These instructions似乎足以创建telnet二进制文件. 他们归结为: apt-get install gcc-multilib; ./configure CFLAGS='-m32' -disable-ifconfig --with-ncurses-include-dir=/root/Documents/tnbuild --disable-hostname --disable-logger --disable-rcp --disable-rexec --disable-rlogin --disable-rsh --disable-tftp --disable-traceroute --disable-inetd --disable-rexecd --disable-syslogd --disable-tftpd make (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |