Eu já fiz essa pergunta no Stack Overflow, mas gostaria de saber se alguém conseguiu criar uma cadeia de ferramentas GCC 4.7 para compilação cruzada ARM (para um host Linux x86 / x86-64). Há muitas instruções para compilar o GCC a partir da fonte e muitos compiladores cruzados disponíveis para versões anteriores ao 4.7 do GCC, mas não a mais recente.
Compilar no próprio Rasp Pi funciona bem, mas é um pouco lento demais para fins práticos.
Estou ansioso para começar a compilar e gostaria de usar as ferramentas mais recentes e melhores.
software-development
cross-compilation
gcc
tlhIngan
fonte
fonte
Respostas:
Encontrei estas instruções Como criar um compilador cruzado para o seu Raspberry Pi . É uma ótima maneira de usar uma
crosstool-ng
ferramenta que simplifica a configuração de um compilador cruzado A LOT (ele possui uma ótima interface baseada em maldições) e suporta o GCC 4.7.Eu segui essas etapas e acabei com uma compilação bem-sucedida de um compilador cruzado 4.7.
crosstool-ng
a partir daqui (eu usei a versão 1.15.2)../configure
/make
/install
cd
incorporá-lo.ct-ng menuconfig
. Você verá um bom conjunto de menus para configurar sua compilação.Escolha um diretório Prefixo adequado . Este é o diretório no qual o seu compilador e bibliotecas serão instalados (tudo está bem basicamente, apenas verifique se o diretório está vazio).
Vá para o menu Opções de destino .
Você também pode definir o parâmetro de ponto flutuante como softfp (consulte isso para obter mais informações), mas o hardfp é mais apropriado para o Raspbian.
Vá para o menu da biblioteca C e escolha um. O padrão é eglibc, mas esse não foi compilado para mim, então usei glibc (a versão mais recente).
crosstool-ng
ct-ng build
no mesmo diretório. Espere um pouco (cerca de 45 minutos no meu caso) e seu compilador cruzado deve estar pronto.Parece funcionar muito bem!
fonte
De fato, as melhores e mais recentes ferramentas não precisam ser construídas por você. No repositório do Raspberry Pi Tool GitHub, você encontrará as cadeias de ferramentas
X86_64
ex686
para o software de compilação cruzada.Eu recomendo usar a
x86-linux64-cross-arm-linux-hardfp
cadeia de ferramentas, pois ela será compilada para o Hard Floating Point, o que resultará em um sistema muito mais rápido.Nota: Se você estiver usando um kernel existente, precisará usar a cadeia de ferramentas que corresponde ao kernel. Os aplicativos HardFP não funcionarão em um kernel SoftFP.
Para usar a cadeia de ferramentas, basta verificar o repositório:
O
--depth
parâmetro significa que você não precisa esperar o download do histórico do repositório também (já que não o usaremos).Em seguida, adicione os binários à sua variável PATH:
Ou para persistir no PATH:
Para compilar com a cadeia de ferramentas, agora você pode adicionar o
CROSS_COMPILE
parâmetro Por exemplo, ao executarmake
:Ou, para facilitar isso, você pode salvar a variável
bashrc
novamente:e agora use a variável ao compilar:
fonte
Observe que ao construir a cadeia de ferramentas usando ct-ng no centos 6.3 em um sistema de 64 bits, fui forçado a desmarcar a opção de vincular estaticamente o libstdc ++ porque o vínculo estático não era suportado na plataforma (aparentemente).
Além disso, embora seja ótimo usar a cadeia de ferramentas pré-criada do repositório git, essa cadeia não parece funcionar no Centos 6.3 - provavelmente porque foi criada para um sistema mais moderno ou algo assim. Eu realmente não tentei explicar isso.
fonte
Este guia pode ser útil.
Isso me ajudou a fazer o meu ir. Também adicionei alguns comentários sobre o ajuste.
fonte
Se você deseja se beneficiar de um host rápido para compilar coisas para o seu RPI, sugiro que trabalhe em ambiente cruzado via chroot e QEMU. A propósito, isso substitui um compilador cruzado sem problemas.
Simplesmente configure um ambiente cruzado Debian usando deboostrap / multistrap
(consulte o capítulo abordagem QEMU / debootstrap) e está pronto.
fonte
Caso você faça uma compilação cruzada a partir do OS X: aqui está o excelente artigo (e o único que trabalha na Web que encontrei).
O melhor de tudo é que o autor fornece uma cadeia de ferramentas pré-compilada completa , então você só precisa baixar, descompactar e montar a imagem dmg. E é isso, você está pronto para compilar.
fonte
Se você instalou o Ubuntu 64 bits edition e as ferramentas do Raspberry Pi SVN e está recebendo o erro:
apenas corra:
fonte
A Carlson-Minot Inc. fornece uma cadeia de ferramentas pré-criada para destinos bare-metal e GNU / Linux ARM. Essa cadeia de ferramentas é baseada na cadeia de ferramentas Mentor Graphics Sourcery Lite com correções e adoções para compilação no OS X. Consulte
fonte