如何在没有C编译器的系统上安装gcc?这个系统是基于Linux的防火墙,没有安装任何C编译器。
我猜你有一台运行Linux和Shell访问权限的设备,但没有安装软件包管理器或编译器。
因此,您需要交叉编译gcc和整个工具链(至少是binutils)-这很简单,因为gcc、binutils、gdb等的“./configure”脚本支持使用“--target =”选项进行交叉编译。因此,您需要做的就是找出目标架构(uname可以帮助),然后在Linux主机上下载、解压缩gcc源代码并运行“./configure --target=$YOUR_TARGET"。
这样,您现在就可以构建跨编译gcc - 这仍然在您的主机上运行,但会为您的目标(防火墙设备)生成二进制文件。
对于您来说,这可能已经足够了,典型的桌面PC比典型的设备快得多,因此在交叉编译和交叉binutils上编译所需的所有内容可能是有意义的。
但是,如果您真的希望这样做,现在您也可以使用交叉编译器来编译在您的目标上运行的gcc(将其设置为“--host=”选项),并且编译针对您的目标(将其设置为“--target”选项)。
关于允许的主机/目标和示例的详细信息,请参阅gcc文档:http://gcc.gnu.org/install/specific.html。
这取决于发行版,如果它基于Debian或其他大型发行版之一,您可以通过apt-get或类似工具安装gcc。
如果是更基本的系统,则需要在另一台计算机上编译gcc并将其复制过来。如果您有另一台具有相同架构(例如i386、arm或x86_64)的计算机,那么最容易实现。
我认为您可能还想静态编译它,这样您就不必依赖外部库。
由于您正在使用Endian Firewall,请参见以下链接中的“构建开发框”:
sudo apt-get install gcc
cp
,也许还有mount
。 - Elazar Leibovich