web-dev-qa-db-ja.com

Clangには基本的なヘッダーが表示されません

Fedora 20でClangを使用して単純なHello Worldをコンパイルしようとしましたが、次の出力が得られました。

d.cpp:1:10:致命的なエラー: 'iostream'ファイルが見つかりません

#include <iostream>

私はそれを解決する方法がわかりません。

43
sweet_sugar

ポイント私のために問題を解決しました。

1.同じ問題、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.
14
user4823890

これは、g ++がインストールされていないため、libstdc ++が存在しないためです。

G ++をインストールできます。LLVMを優先する場合は、LLVM libc ++をインストールし、次のように使用するように指定します。

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

/ usr/bin/c ++をデフォルトのコンパイラにリンクすることもできます。

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

そして次に単に使用してコンパイルします

$ c++ <args_as_usual>
32
ArunasR

-stdlibオプションを使用してclangビルドを提供する必要があるようです。 -stdlib = libc ++または-stdlib = libstdc ++のいずれかがおそらく機能します。あなたの主題に関する詳細があります:

フラグ-stdlib = libstdc ++を使用する必要がある場合

0