Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

352
Visualizações
Compilación cruzada de Clang para Raspberry pi 3B+

He estado tratando de configurar una cadena de herramientas de compilación cruzada clang que compilará el host x86-64-linux-gnu de C/C++ para apuntar a arm-linux-gnueabihf. El binario de salida está diseñado para ejecutarse en una raspberry pi 3B+ con CPU armv7 cortex-53a. El sistema operativo raspberry pi es el equivalente de debian-buster de Raspian, por lo que el sonido metálico predeterminado en apt es sonido metálico-7.0.1.

Espero lograr un compilador cruzado clang, que se pueda invocar con

 clang++ hello_world.cpp

Y por defecto compila y enlaza con las rutas correctas arm-linux-gnueabihf include y library. El enlazador a usar no es importante para mi fin.

Empecé siguiendo la guía en https://solarianprogrammer.com/2019/05/04/clang-cross-compiler-for-raspberry-pi/ y TLDR; descarga el proyecto llvm con la versión apropiada (7.0.1), construye LLVM, clang, compiler-rt, lld, libunwind y polly con cmake y ninja, usando banderas cmake:

 -DCMAKE_BUILD_TYPE=Release -DLLVM_BUILD_DOCS=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/cross_armhf_clang_7 -DCMAKE_CROSSCOMPILING=True -DLLVM_DEFAULT_TARGET_TRIPLE=arm-linux-gnueabihf -DLLVM_TARGET_ARCH=ARM -DLLVM_TARGETS_TO_BUILD=ARM

Pero cuando intenta compilar libcxxabi y libcxx con el sonido metálico recién creado, no encuentra la libstdc++ correcta:

 CMake Error at /usr/local/cross_armhf_clang_7/lib/cmake/llvm/CheckCompilerVersion.cmake:38 (message): Host Clang must be able to find libstdc++4.8 or newer! Call Stack (most recent call first): /usr/local/cross_armhf_clang_7/lib/cmake/llvm/HandleLLVMOptions.cmake:9 (include) cmake/Modules/HandleOutOfTreeLLVM.cmake:97 (include) cmake/Modules/HandleOutOfTreeLLVM.cmake:140 (configure_out_of_tree_llvm) CMakeLists.txt:29 (include)

Aquí estoy usando las banderas cmake:

 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/cross_armhf_clang_7 -DLLVM_TARGETS_TO_BUILD=ARM -DCMAKE_C_COMPILER=/usr/local/cross_armhf_clang_7/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/cross_armhf_clang_7/bin/clang++

También intenté compilar un hello-world.cpp simple con clang-10 en mi escritorio con arm-linux-gnueabihf binutils, gcc, etc. instalados en mi sysroot

 clang++ --target=arm-linux-gnueabihf hello-world.cpp

que me da

 /usr/bin/../lib/gcc-cross/arm-linux-gnueabihf/9/../../../../include/c++/9/string:38:10: fatal error: 'bits/c++config.h' file not found

También intenté usar las guías en la página web de llvm para realizar compilaciones cruzadas con clang y compilar libc++, pero no tuve suerte.

¿Alguna sugerencia sobre lo que puedo hacer para resolver esto?

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda