2014-10-13 12 views
29

Ich habe versucht, auf Fedora 20 mit Clang einfache Hallo Welt zu kompilieren, und ich erhalte die folgende Ausgabe:Clang sieht keine grundlegenden Header

d.cpp:1:10: fatal error: 'iostream' file not found

#include <iostream>

Ich habe keine Ahnung, wie es zu lösen .

+0

'clang ++ -v your_file.cpp', stellen Sie sicher, dass die richtigen Include-Verzeichnisse angezeigt werden. –

+0

#include "..." Suche beginnt hier: #include <...> Suche beginnt hier: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9.1/../../. ./../include/c++ /usr/local/include /usr/bin/../lib/clang/3.4/include /usr/include Ende der Suchliste. –

+0

Es hier zu veröffentlichen wird nicht helfen. Sie müssen selbst feststellen, ob die richtigen Include-Verzeichnisse vom Compiler gefunden werden. Wenn Sie aus der Quelle kompiliert haben, stellen Sie sicher, dass Sie 'make install' gemacht haben. Und füge die Verzeichnisse deinem Pfad hinzu. –

Antwort

9

Punkt 3 mit kompilieren löste das Problem für mich.

1. hatte das gleiche Problem, Fedora 21 :: Klirren 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. 
18

Dies ist, weil g ++ nicht installiert ist, so dass libstdC++ nicht vorhanden ist.

können Sie installieren g ++, oder wenn LLVM bevorzugt wird, installieren LLVM libC++ und angeben, dass Sie es verwenden möchten, etwa so:

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

Möglicherweise möchten Sie/usr/bin/c verbinden ++ auf die Standard-Compiler:

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

und dann einfach

$ c++ <args_as_usual> 
+0

Ich benutze Fedora 20. g ++ und llvm sind installiert und libC++ auch :-) –

+0

GCC g ++ funktioniert einwandfrei ;-) –

+3

@sweet_sugar Tut mir leid, ich benutze Mint und weiß nicht, wie Fedora Dinge packt. Unter Debian befinden sich LLVM-Header in ** libC++ - dev **, das von ** libC++ ** (der binary runtime lib) getrennt ist. – ArunasR

-4

Ich lief in dieses Problem, weil ich eine filename.c hatte, wo ich eine filename.cpp brauchte. Offensichtlich wird der Compiler nicht in der Lage sein, C++ - Header zu finden, wenn ich sage, dass ich C schreibe!

Verwandte Themen