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++?