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?
Tags gcc c c++ cross-compilation raspbian