Se ldd
disser que não é um executável dinâmico, ele foi compilado para o destino errado.
Obviamente, você fez a compilação cruzada, pois file
é um executável ARM de 32 bits. No entanto, há mais de uma arquitetura "ARM", então, possivelmente, sua cadeia de ferramentas foi configurada incorretamente.
Se você estiver usando o crosstool-NG, dê uma olhada no .config
para o valor de CT_ARCH_ARCH
. Para o pi de framboesa, deveria ser "armv6j" 1 - ou pelo menos, é isso que funciona para mim. Existem outras especificidades, mas eu acho que isso deve ser suficiente. Infelizmente, se estiver errado, agora você precisa reconstruir.
O IMO fazendo com que um toolchain cross-compiler funcione pode ser entediante e frustrante, mas, presumindo que o host não é um fator significativo (não deveria ser), neste caso, isso pode ser feito. O Crosstool-ng usa um configurador TLI, portanto, se você tiver que tentar várias compilações, anote suas escolhas a cada vez para saber o que funcionou.
1 Eu acredito que armv7 é um arco muito mais comum (muitos telefones e tal), então se você está apenas usando algo que você acredita ser um compilador ARM genérico, esse é provavelmente o problema. Esses números são confusos, como, por exemplo, o processador do pi é um ARM11 , mas (de acordo com essa página), a família ARM11 dos processadores usa a arquitetura ARMv6 - ou seja, o ARM11 é uma implementação do ARMv6.