Подтвердить что ты не робот

Кланг не видит базовые заголовки

Я попытался скомпилировать простой мир hello на Fedora 20 с Clang, и я получаю следующий вывод:

d.cpp: 1:10: фатальная ошибка: файл "iostream" не найден

#include <iostream>

Я не знаю, как его решить.

4b9b3361

Ответ 1

Точка 3 решила проблему для меня.

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.

Ответ 2

Это потому, что g++ не установлен, поэтому libstdС++ отсутствует.

Вы можете установить g++, или если LLVM предпочтителен, установите LLVM libС++ и укажите, что вы хотите использовать, например:

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

Вы можете связать/usr/bin/С++ с компилятором по умолчанию:

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

а затем просто скомпилировать с помощью

$ c++ <args_as_usual>

Ответ 4

Я столкнулся с этой проблемой, потому что у меня был filename.c, где мне нужен filename.cpp. Очевидно, что компилятор не сможет найти заголовки С++, когда я скажу, что пишу C!