2016-12-12 11 views
0
#include <iostream> 
using namespace std; 

int main(){ 
    std::cout << "Hello World\n"; 
    return 0; 
} 

コマンド1(作品)はC++ファイル内の標準ライブラリ

clang hello.cc -o hello -lc++ 

コマンド2(ない作品を行う)

/path/to/custom/clang hello.cc -o hello -lc++ 

main.cc:2:10: fatal error: 'iostream' file not found 
#include <iostream> 
     ^
1 error generated. 

を含めることができませんか?

答えて

1

これは既知のUbuntuの問題です。彼らのclangは正しく設定されていません。私はそれに文句を言ったhere - これは何年も固定されていませんでした。

しかし、良いニュースは、最新の16.10リリースで動作するようになりました。

編集:あなたの更新された質問に基づいて、私は "custom clang"はインクルードファイルについて知らないと言います。

+0

私はMacOSです。多分それは同じ問題です。 これを修正するための回避策はありますか? –

+0

私は-Iスイッチでうまくやっていましたが、C++標準ライブラリの2つの可能な実装のためにそれがより厄介になります。私はOS Xのボックスを持っていませんが、友人はそうです、そして、clangとclang ++は明らかに彼らのために働きます。しかし、時々、g ++(OpenMPを得るために必要なこと)も必要です。私の友人@coatless [ブログで](http://thecoatlessprofessor.com/)の数の投稿として。 –

3

CコンパイラでC++をコンパイルしようとしているようです。代わりにclang++を実行してみてください。

clang++ hello.cc -o hello 

C++コンパイラとしてclangを実行しないと、インクルードできるC++標準ライブラリヘッダーがありません。 clang++を使用すると、C++標準ライブラリヘッダーが使用可能になり、C++標準ライブラリが自動的にリンクされます。

+1

あなたは正しいです。私はCプログラムを試してみました。私が使用している[custom clang](https://github.com/obfuscator-llvm/obfuscator/tree/clang-425.0.24)にclang ++が含まれていないことがわかりました。 –

関連する問題