Clang kan ikke se grundlæggende overskrifter

 C Programming >> C Programmering >  >> Tags >> Clang
Clang kan ikke se grundlæggende overskrifter

Dette skyldes, at g++ ikke er installeret, så libstdc++ er ikke til stede.

Du kan installere g++, eller hvis LLVM foretrækkes, installer LLVM libc++ og specificer, at du vil bruge det, sådan:

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

Du ønsker måske at linke /usr/bin/c++ til standardkompileren:

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

og kompilér derefter ved at bruge

$ c++ <args_as_usual>

Punkt 3 løste problemet for mig.

1. Havde det samme problem, 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.

Det ser ud til, at du skal give din clang-build med -stdlib option. En af -stdlib=libc++ eller -stdlib=libstdc++ vil sandsynligvis fungere. Der er flere detaljer om dit emne:

Hvornår er det nødvendigt at bruge flaget -stdlib=libstdc++?