Gosto de usar o gcc para compilar pequenos programas C e C ++ no meu computador principal. No entanto, também tenho um Raspberry Pi e, sendo um computador de núcleo único de 700 MHz, eu preferiria não ter que fazer meu trabalho de desenvolvimento sempre que desejar criar um binário para ele. Como (porque eu sei que há uma maneira) compilar meu programa para o Raspberry Pi usando meu laptop x86? E existe uma maneira de compilar programas C (++) no Pi, mas produzir um binário x86? Se for de alguma ajuda, "O SoC é um Broadcom BCM2835. Este contém um ARM1176JZFS, com ponto flutuante ..." (de acordo com a FAQ oficial do Raspberry Pi ).
gcc
cross-compilation
raspberrypi
quadriculado
fonte
fonte
Respostas:
Usando uma combinação de bisbilhotar nos
apt
repositórios e o extremamente excelente Building Embedded Linux Systems (2ª edição, 2008, O'Reilly), descobri o seguinte:Esse é o nome do comando e o pacote que você instala para adquiri-lo. Uma vez chamado, ele atua exatamente como "baunilha"
gcc
, com a única exceção que cria pacotes para a arquitetura ARM (ou um subconjunto incluindo o BCM2835, pelo menos). A criação de sistemas Linux embarcados (págs. 93-94) explica que os nomes usados para chamar as ferramentas GNU de uma maneira de compilação cruzada seguem este formato:O
-gcc
final do exemplo mais alto é o componente usado para especificar qual partebinutils
você deseja usar. Pode ser trocado por outro componente da cadeia de ferramentas GNU, comold
(linker) ouas
(assembler). Poisarm-linux-gnueabi-gcc
,arm
é a arquitetura,linux
é o kernel,gnueabi
é o sistema operacional egcc
é o componente. Onde está o fabricante? Aparentemente, o fabricante pode ser especificado como "desconhecido", pois raramente faz diferença ou deixado de fora por completo (incluindo o que fariaarm-linux-unknown-gnueabi-gcc
).fonte
Método oficialmente documentado
https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub )
Testado no Ubuntu 17.10, repositório de ferramentas em 5caa7046982f0539cf5380f94da04b31129ed521
fonte
Não tenho certeza de 100%, mas, usando https://tandrepires.wordpress.com/2012/08/01/raspberry-pi-openelec-pvr-dvb-t/ , você pode tentar: 1) Bibliotecas necessárias:
2) Compile o projeto com as seguintes opções, onde N é o número de núcleos da sua CPU x86:
Espero que ajude. `
fonte
make
serve para compilar um projeto que foi configurado para usar make ("PROJECT = RPi ARCH = arm PVR = yes make release -j N", o material anterior é apenas um monte de variáveis de shell). Agora, na realidade,make
usa o gcc, mas para usar a linha de código fornecida, eu precisaria obter a fonte do make e, em seguida, procurar na maioria das partes, pesquisando as diferentes partes do código que adicionariam os argumentos necessários ao gcc. Obrigado por tentar, no entanto!