desenv-web-rp.com

Como faço para compilar algo para Linux se não tenho espaço suficiente para instalar o GCC?

Comprei uma interface homem-máquina (Exor Esmart04). Executando no Linux 3.10.12, no entanto, este Linux é simplificado e não possui um compilador C. Outro problema é o espaço em disco:

disk-space-snip

Eu tentei instalar o GCC nele, mas não tenho espaço em disco suficiente para isso, alguém tem outras soluções ou outros compiladores C que exigem menos espaço em disco?

23
NielsStenden

Geralmente, para um dispositivo incorporado, não se compila software diretamente nele. É mais confortável fazer o que é chamado cross-compilation que, em resumo, está compilando usando o seu PC comum em outra arquitetura que não seja x86.

Você disse que é novo no Linux; apenas para sua informação, você está enfrentando um enorme problema: a compilação cruzada para dispositivos incorporados não é uma tarefa fácil.

Eu pesquisei seu sistema HMI e notei alguns resultados que estão falando sobre o Yocto. Yocto é, em suma, uma estrutura completa para criar firmware para dispositivos incorporados.

Como sua IHM utiliza massivamente projetos de código aberto (Linux, provavelmente busybox, etc.), o fabricante deve fornecer uma maneira de reconstruir todos os componentes de código aberto, você mesmo. Normalmente, o que você precisa fazer é o BSP ( Pacote de Suporte da Placa ). O fabricante do hardware geralmente o envia:

  • Usando o projeto buildroot que permite reconstruir todo o firmware do zero.
  • Usando yocto meta que, adicionada a uma nova cópia do projeto yocto correspondente, permitirá que você reconstrua todo o firmware também.
  • Mais raramente, um monte de scripts ruins e compilador pré-construído.

Então, se eu fosse você, eu faria:

  1. Entre em contato com o suporte do fabricante para solicitar o material para reconstruir o firmware, conforme implícito no uso de código aberto.
  2. Paralelamente, pesquise no Google por "sua HMI + yocto", "sua HMI + buildroot" etc.

Depois de pesquisar ainda mais no Google, descobri uma meta Yocto em github .

Você pode verificar as máquinas implementadas por esta meta no diretório conf/machine da meta.

Atualmente, existem cinco máquinas definidas com os seguintes codinomes:

  • us01-kit
  • us02-kit
  • us03-kit
  • usom01
  • usom02

Então, sugiro que você investigue isso. Provavelmente, é dessa maneira que você pode criar software sozinho. Você também pode verificar nesta página na conta do github que pode lhe dar mais algumas dicas.

63
binarym

Concordo com a resposta da binarym em relação à compilação cruzada. No entanto, se alguém ainda quiser compilar diretamente em uma máquina com um hardware tão conservador, recomendo dar uma olhada em compiladores menores, como o Compilador C Minúsculo (tcc) , que ocupa aproximadamente 100 KB na arquitetura x86 . Vou salientar, no entanto, que ele estende o suporte apenas até a ISO C99, não a C11.

3
Christian Gibbons