Os binários de toolchain não podem ser encontrados

1

Tentando construir uma versão recente do bootloader u-boot para minha placa mini2440 ARM Consegui baixar um pacote toolchain do código de código e extraí-lo para o seguinte caminho: /usr/local/arm-2008q3/

Também exportei os seguintes valores para a sessão atual:

export PATH=$PATH:/usr/local/arm-2008q3/bin
export CROSS_COMPILE=arm-none-linux-gnueabi-

Quando executo o make , recebo a seguinte saída e não consigo entender por quê:

make: arm-none-linux-gnueabi-gcc: Command not found
for dir in tools examples api_examples ; do make -C $dir _depend ; done
make[1]: arm-none-linux-gnueabi-gcc: Command not found
make[1]: Entering directory '/home/deth/uboot/mini2440/tools'
make[1]: Nothing to be done for '_depend'.
make[1]: Leaving directory '/home/deth/uboot/mini2440/tools'
make[1]: arm-none-linux-gnueabi-gcc: Command not found
make[1]: Entering directory '/home/deth/uboot/mini2440/examples'
/bin/sh: 1: arm-none-linux-gnueabi-gcc: not found

Eu verifiquei tudo e os binários de fato residem na pasta mencionada, mas ... Por favor, explique onde estou errado.

    
por aquila 09.07.2014 / 20:42

2 respostas

1

Bem, depois de quase três dias batendo cabeça na parede, consegui resolver isso. Para ser honesto, eu poderia nunca tê-lo resolvido se ocasionalmente não tivesse instalado o conjunto de ferramentas do COdesourcery com o instalador executável que eles também fornecem. Depois disso, a versão manualmente descompactada começou a ser executada! Isso obviamente levou à conclusão de que havia bibliotecas faltando. Tentei reproduzir o problema em máquina virtual separada e voila, aqui estão algumas palavras que resolveram toda a questão:

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

Espero que isso ajude alguém e obrigado a todos que tentaram ajudar!

    
por aquila 10.07.2014 / 20:58
0

Tente definir mais algumas variáveis. Abaixo está algo que funciona para mim com o toolchain instalado no meu diretório home (o seu é diferente, basta alterar o MY_ARM_BASE). Eu não faço muita compilação cruzada, então eu coloquei as variáveis necessárias em um arquivo, (eu chamei o meu "myconfig") e o executei com o comando dot para colocá-lo no meu ambiente (para que a permissão de execução não seja necessária) .

.  myconfig

Agora o makefile que eu estava usando NÃO era do fornecedor do toolchain, então eu entrei no diretório bin do toolchain e adicionei links para os executáveis com nomes curtos, por exemplo:

ln -s arm-none-linux-gnueabi-g++ g++

Em seguida, adicionei a definição CXX às variáveis toolchain para permitir que o makefile fosse executado.

=== Coloque em um arquivo, por conveniência ===

MY_ARM_BASE=${HOME}/dev/toolchain/arm-2008q3
C_INCLUDE_PATH=${MY_ARM_BASE}/lib/gcc/arm-none-linux-gnueabi/4.3.2/include:${MY_ARM_BASE}/lib/gcc/arm-none-linux-gnueabi/4.3.2/include-fixed
LIBRARY_PATH=${MY_ARM_BASE}/arm-none-linux-gnueabi/libc/lib:${MY_ARM_BASE}/arm-none-linux-gnueabi/libc/usr/lib
CPLUS_INCLUDE_PATH=${MY_ARM_BASE}/arm-none-linux-gnueabi/include/c++/4.3.2
#OBJC_INCLUDE_PATH
COMPILER_PATH=${MY_ARM_BASE}/bin
#LD_RUN_PATH
#GPROF_PATH
#######
CC=${COMPILER_PATH}/gcc
CXX=${COMPILER_PATH}/g++
RANLIB=${COMPILER_PATH}/ranlib
STRIP=${COMPILER_PATH}/strip
export C_INCLUDE_PATH LIBRARY_PATH CPLUS_INCLUDE_PATH COMPILER_PATH
export CC CXX RANLIB STRIP
    
por ubfan1 09.07.2014 / 21:24