Não é possível compilar cruzado usando rootfs como sysroot devido a links absolutos

0

Eu já postei essa pergunta ( em Raspi.SE ) e agora percebeu que poderia ser mais apropriado perguntar aqui.

Eu quero fazer uma compilação cruzada (para o PI de framboesa) de um aplicativo e preparei tudo o que é necessário para fazer isso (usando o GCC, CMake, seu arquivo toolchain, criando um sysroot).

Tudo está configurado corretamente, IMHO.

Como sysroot eu usei o rootfs de um Raspberry instalado (que eu nfs-mount). Eu faço isso, porque eu preciso de algumas bibliotecas do sistema que são bem fornecidas pelo Raspbian (incluindo seus pacotes -dev).

Meu problema é que alguns arquivos de biblioteca estão em /usr/lib/arm-linux-gnueabihf/ são um link para o arquivo real localizado em /lib/arm-linux-gnueabihf/ . Este link é feito com um caminho absoluto .

Meus arquivos CMake estão procurando rt , por exemplo, e o librt está vinculado a /lib/arm-linux-gnueabihf/librt.so.1 . Este arquivo não existe (na verdade, está localizado em /mnt/rpi-rootfs/lib/arm-linux-gnueabihf/librt.so.1 ) o cmake falha.

Onde está o meu erro? Existe algo que eu possa fazer com a distribuição raspbian? Isso é um inseto? É um recurso?

Não devo usar rootfs e cross-compilation-sysroot?

    
por Patrick B. 14.02.2018 / 14:20

0 respostas