NielsStenden Asked: 2019-12-12 00:52:16 +0800 CST2019-12-12 00:52:16 +0800 CST 2019-12-12 00:52:16 +0800 CST 如果我没有足够的空间来安装 GCC,我该如何为 Linux 编译一些东西? 772 我购买了人机界面 (Exor Esmart04)。在 Linux 3.10.12 上运行,但是这个 Linux 被剥离并且没有 C 编译器。另一个问题是磁盘空间: 我尝试在其上安装 GCC,但我没有足够的磁盘空间,是否有人有其他解决方案或其他需要更少磁盘空间的 C 编译器? linux shell-script 2 个回答 Voted Best Answer binarym 2019-12-12T01:56:49+08:002019-12-12T01:56:49+08:00 通常,对于嵌入式设备,人们不会直接在其上编译软件。做所谓的事情会更舒服cross-compilation,简而言之,使用您的常规 PC 将其编译到 x86 之外的另一个体系结构。 你说你是 Linux 新手;仅供参考,您面临着一个巨大的问题:交叉编译到嵌入式设备并非易事。 我研究了你们的 HMI 系统并注意到一些关于 Yocto 的结果。 Yocto简而言之,它是一个为嵌入式设备构建固件的完整框架。 由于您的 HMI 大量使用开源项目(Linux,可能是 busybox 等),制造商必须为您提供一种自行重建所有开源组件的方法。通常,您需要做的是BSP(板级支持包)。硬件制造商通常会发货: 使用buildroot允许您从头开始重建整个固件的项目。 使用yocto添加到相应 yocto 项目的新副本的元数据,您也可以重建整个固件。 更罕见的是,一堆蹩脚的脚本和预构建的编译器。 所以,如果我是你,我会: 联系制造商支持以要求使用开源软件重建固件。 同时,在 Google 上搜索“your HMI + yocto”、“your HMI + buildroot”等。 在谷歌搜索更多之后,我在github上发现了一个 Yocto 元数据。 你可以在 meta 的conf/machine目录下查看这个 meta 实现的机器。 目前有五台机器以下列代号定义: us01-套件 us02-套件 us03-套件 usom01 usom02 所以我建议你深入研究一下。这可能是您可以自己构建软件的方式。您也可以在 github 帐户上查看此页面,这可能会为您提供更多线索。 Christian Gibbons 2019-12-13T13:52:30+08:002019-12-13T13:52:30+08:00 我同意 binarym 关于交叉编译的回答。但是,如果仍然想在具有如此保守硬件的机器上直接编译,我建议您看一下较小的编译器,例如Tiny C Compiler (tcc),它在 x86 架构上占用大约 100KB。但是,我要指出,它仅将支持扩展到 ISO C99,而不是 C11。
通常,对于嵌入式设备,人们不会直接在其上编译软件。做所谓的事情会更舒服
cross-compilation
,简而言之,使用您的常规 PC 将其编译到 x86 之外的另一个体系结构。你说你是 Linux 新手;仅供参考,您面临着一个巨大的问题:交叉编译到嵌入式设备并非易事。
我研究了你们的 HMI 系统并注意到一些关于 Yocto 的结果。
Yocto
简而言之,它是一个为嵌入式设备构建固件的完整框架。由于您的 HMI 大量使用开源项目(Linux,可能是 busybox 等),制造商必须为您提供一种自行重建所有开源组件的方法。通常,您需要做的是
BSP
(板级支持包)。硬件制造商通常会发货:buildroot
允许您从头开始重建整个固件的项目。yocto
添加到相应 yocto 项目的新副本的元数据,您也可以重建整个固件。所以,如果我是你,我会:
在谷歌搜索更多之后,我在github上发现了一个 Yocto 元数据。
你可以在 meta 的conf/machine目录下查看这个 meta 实现的机器。
目前有五台机器以下列代号定义:
所以我建议你深入研究一下。这可能是您可以自己构建软件的方式。您也可以在 github 帐户上查看此页面,这可能会为您提供更多线索。
我同意 binarym 关于交叉编译的回答。但是,如果仍然想在具有如此保守硬件的机器上直接编译,我建议您看一下较小的编译器,例如Tiny C Compiler (tcc),它在 x86 架构上占用大约 100KB。但是,我要指出,它仅将支持扩展到 ISO C99,而不是 C11。