Я не хочу обсуждать C++ или какой-либо другой язык программирования!Я просто хочу знать, что я делаю не так с linux ubuntu в отношении компиляции helloworld.cpp !
Я изучаю C++, поэтому мои шаги таковы:
открыть hello.cpp в vim и напишите это
#include <iostream.h>int main(){ cout << "Hello World!\n";` return 0;}
Итак, после этого я попробовал в терминале это
g++ hello.cpp
И на выходе получается
hello.cpp:1:22: fatal error: iostream.h: No such file or directorycompilation terminated.
Что вы предлагаете? Какое-нибудь полезное пошаговое руководство для меня?Спасибо!
Вы должны использовать #include <iostream>
, не iostream.h
; в .h форма очень старая и устарела с давних пор.
Вы можете прочитать больше, чем, вероятно, хотите знать, на .h против не-.h формы здесь:http://members.gamedev.net/sicrane/articles/iostream.html
(Кроме того, вы должны написать std::cout
или есть линия using namespace std;
в противном случае ваша следующая ошибка будет связана с тем, что компилятор не найдет определение для cout
.)
Ты должен измениться iostream.h
к iostream
. Я также получал ту же ошибку, что и вы, но когда я изменил iostream.h
чтобы просто iostream
, это сработало должным образом. Может быть, это сработало бы и для вас.
Другими словами, измените строку, в которой говорится:
#include <iostream.h>
Заставь его сказать это вместо этого:
#include <iostream>
Заголовочные файлы стандартной библиотеки C++, как определено в стандарте, не имеют .h
расширения.
Как уже упоминалось Ответ Риккардо Мурри, вам также нужно будет позвонить cout
по его полному имени std::cout
, или иметь одну из этих двух строк (предпочтительно под вашим #include
директивы, но выше вашего другого кода):
using namespace std;
using std::cout;
Второй способ считается предпочтительным, особенно для серьезных программных проектов, поскольку он затрагивает только std::cout
, вместо того чтобы вводить все имена в std
пространство имен (некоторые из которых потенциально могут мешать именам, используемым в вашей программе).
В случае, если кто-то рассматривает возможность голосования за закрытие этого вопроса как не по теме: это действительно проблема, зависящая от конкретной платформы, потому что самый популярный компилятор C ++ для Windows (Microsoft Visual C++) принимает этот синтаксис, но большинство других компиляторов (включая g ++
в Ubuntu) не принимают его.
#include использование пространства имен std; int main(){ cout << “Hello World”; return 0;} this can work…