Clang no ve encabezados básicos

 C Programming >> Programación C >  >> Tags >> Clang
Clang no ve encabezados básicos

Esto se debe a que g++ no está instalado, por lo que libstdc++ no está presente.

Puede instalar g ++, o si prefiere LLVM, instale LLVM libc ++ y especifique que desea usarlo, así:

sudo apt-get install libc++-dev
clang++ -stdlib=libc++ <rest of arguments>

Es posible que desee vincular /usr/bin/c++ al compilador predeterminado:

ln -s /usr/bin/c++ /usr/bin/clang++-libc++

y luego compila simplemente usando

$ c++ <args_as_usual>

Punto 3 resolvió el problema para mí.

1.Tuve el mismo problema, fedora 21::clang 3.5.0:

clang++ -std=c++14 -pedantic -Wall test_01.cpp -o test_01 -v

2.

ignoring nonexistent directory "/usr/lib/gcc/i686-redhat-linux/4.9.2/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/bin/../lib/clang/3.5.0/include
 /usr/include
End of search list.
test_01.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>

3.

sudo yum install gcc-c++

4.

#include "..." search starts here:
#include <...> search starts here:
 /bin/../lib/gcc/i686-redhat-linux/4.9.2/../../../../include/c++/4.9.2
 /bin/../lib/gcc/i686-redhat-linux/4.9.2/../../../../include/c++/4.9.2/i686-redhat-linux
 /bin/../lib/gcc/i686-redhat-linux/4.9.2/../../../../include/c++/4.9.2/backward
 /usr/local/include
 /usr/bin/../lib/clang/3.5.0/include
 /usr/include
 /usr/lib/gcc/i686-redhat-linux/4.9.2/include
End of search list.

Parece que debería proporcionar su compilación clang con la opción -stdlib. Una de -stdlib=libc++ o -stdlib=libstdc++ probablemente funcionará. Hay más detalles sobre su tema:

¿Cuándo es necesario usar la bandera -stdlib=libstdc++?