如果没有足够的空间安装 GCC,如何为 Linux 编译一些东西?

如果没有足够的空间安装 GCC,如何为 Linux 编译一些东西?

我购买了人机界面(Exor Esmart04)。在 Linux 3.10.12 上运行,但是这个 Linux 被精简了并且没有 C 编译器。另一个问题是磁盘空间:

磁盘空间剪辑

我尝试在其上安装 GCC,但我没有足够的磁盘空间,是否有人有其他解决方案或其他需要更少磁盘空间的 C 编译器?

答案1

通常,对于嵌入式设备,人们不会直接在其上编译软件。做所谓的事更舒服cross-compilation简而言之,就是使用普通 PC 编译到 x86 之外的另一种架构。

你说你是 Linux 新手;仅供参考,您面临着一个巨大的问题:交叉编译到嵌入式设备并不是一件容易的事。

我研究了你们的 HMI 系统并注意到一些关于 Yocto 的结果。 Yocto简而言之,是一个为嵌入式设备构建固件的完整框架。

由于您的 HMI 大​​量使用开源项目(Linux,可能是 busybox 等),因此制造商必须为您提供一种自行重建所有开源组件的方法。通常,您需要做的是BSP主板支持包)。硬件制造商通常发货:

  • 使用buildroot允许您从头开始重建整个固件的项目。
  • 使用yocto元,将其添加到相应 yocto 项目的新副本中,也将允许您重建整个固件。
  • 更罕见的是,一堆蹩脚的脚本和预构建的编译器。

所以,如果我是你,我会:

  1. 请联系制造商支持人员,请求使用开源工具来重建固件。
  2. 同时,在 Google 中搜索“您的 HMI + yocto”、“您的 HMI + buildroot”等。

经过更多谷歌搜索后,我发现了 Yocto 元github

您可以在目录上检查此元实现的机器配置/机器元的。

目前有五台机器定义为以下代号:

  • us01-套件
  • us02-套件
  • us03-套件
  • 乌索姆01
  • 乌索姆02

所以我建议你深入研究一下。这可能是您自己构建软件的方式。您还可以检查这一页在 github 帐户上可能会为您提供更多线索。

答案2

我同意binarym关于交叉编译的回答。但是,如果仍然想在具有如此保守的硬件的机器上直接编译,我建议看一下较小的编译器,例如Tiny C 编译器 (tcc)在 x86 架构上大约占用 100KB。不过,我要指出的是,它仅将支持扩展到 ISO C99,而不是 C11。

相关内容