Localización de iostream en Clang ++:error fatal:no se encontró el archivo 'iostream'

 C Programming >> Programación C >  >> Tags >> Clang
Localización de iostream en Clang ++:error fatal:no se encontró el archivo 'iostream'

También me ha preocupado este problema durante mucho tiempo. Debe intentar eliminar la carpeta (cd /usr/lib/gcc/aarch64-linux-gnu/8). La razón por la que clang++ no puede funcionar es que esta carpeta no contiene libstdc++.a.

clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/aarch64-linux-gnu/5
Found candidate GCC installation: /usr/bin/../lib/gcc/aarch64-linux-gnu/5.5.0
Found candidate GCC installation: /usr/bin/../lib/gcc/aarch64-linux-gnu/6
Found candidate GCC installation: /usr/bin/../lib/gcc/aarch64-linux-gnu/6.5.0
Found candidate GCC installation: /usr/bin/../lib/gcc/aarch64-linux-gnu/7
Found candidate GCC installation: /usr/bin/../lib/gcc/aarch64-linux-gnu/7.3.0
Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-gnu/5
Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-gnu/5.5.0
Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-gnu/6.5.0
Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/aarch64-linux-gnu/7.3.0
Selected GCC installation: /usr/bin/../lib/gcc/aarch64-linux-gnu/7.3.0

verifique todas las carpetas en /usr/lib/gcc/aarch64-linux-gnu/clang++ elegirá la última, asegúrese de que esté libstdc++.a en la última


Descubrí que clang estaba usando la instalación en /usr/lib/gcc/x86_64-linux-gnu/8 (usando clang++ -v ), y de hecho esto no contenía el archivo libstdc++.a . En lugar de eliminar todo el directorio como lo sugiere otra respuesta, pude simplemente instalar libstdc++-8-dev .

Estoy en Ubuntu 18.04; gcc ya estaba instalado.


En primer lugar, busque su versión (ruta):

ls /usr/include/c++/

Salida:

8

Luego agregue las rutas de inclusión y reemplace 8 con tu versión:

-I/usr/include/c++/8 
-I/usr/include/x86_64-linux-gnu/c++/8

Esto funciona para mí en Linux:

clang++ -I/usr/include/c++/8 -I/usr/include/x86_64-linux-gnu/c++/8 -L /usr/lib/gcc/x86_64-linux-gnu/8 abc.cpp -o abc

También puede usar CPLUS_INCLUDE_PATH:

export CPLUS_INCLUDE_PATH=/usr/include/c++/8:/usr/include/x86_64-linux-gnu/c++/8

Entonces esto funciona:

clang++ main.cpp -o main

Ejecutar:

./main
g++ --version 

Salida:

g++ (Ubuntu 8.3.0-6ubuntu1) 8.3.0

Y ver:
https://superuser.com/questions/358255/bash-environment-variable-to-include-path-of-c-libraries

¿Cómo consultar las rutas de inclusión predeterminadas de clang++?

Clang no ve encabezados básicos

https://askubuntu.com/questions/516801/clang-fails-to-compile-simple-hello-world-c-program

Espero que esto ayude a alguien.