Я не хочу обсуждать 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 directory
compilation terminated.
Что ты посоветуешь? Любое полезное пошаговое руководство для меня? Спасибо!
g++
в Ubuntu) не принимайте это.Ответы:
Вы должны использовать
#include <iostream>
, а неiostream.h
; .h форма очень устарел и уже много лет.Вы можете прочитать больше, чем вы, вероятно, хотите знать, в формах .h против не .h здесь: http://members.gamedev.net/sicrane/articles/iostream.html
(Кроме того, вы должны написать
std::cout
или иметь строку,using namespace std;
иначе ваша следующая ошибка будет о том, что компилятор не найдет определение дляcout
.)источник
iostream.h
моей системе ее нет. На самом деле, заголовочные файлы C ++ устанавливаются libstdc ++ - dev , что требуется для пакета компилятора C ++ g ++ , что, в свою очередь, требуется для build-essential . Так что, нет, вам не нужна сборка, необходимая для компиляции простых программ на C ++; достаточно установитьg++
пакет.cout
работать безstd::
префикса,using std::cout;
предпочтительнееusing namespace std;
. Даже несколькоusing
операторов (безnamespace
), как правило, лучше, так как вы не вводите идентификаторы изstd
пространства имен, которые вам не нужны, и могут конфликтовать с именами в вашей собственной программе.Вы должны измениться
iostream.h
наiostream
. Я также получал ту же ошибку, что и вы, но когда я перешелiostream.h
на простоiostream
, она работала правильно. Может быть, это будет работать для вас.Другими словами, измените строку, которая говорит:
Заставьте это сказать вместо этого:
Файлы заголовков стандартной библиотеки C ++, как определено в стандарте, не имеют
.h
расширений.Как уже упоминалось в ответе Риккардо Мурри , вам также нужно будет позвонить
cout
по его полностью определенному имениstd::cout
или иметь одну из этих двух строк (желательно ниже ваших#include
директив, но выше вашего другого кода):Второй способ считается предпочтительным, особенно для серьезных программных проектов, поскольку он затрагивает
std::cout
, а не вводит все имена вstd
пространство имен (некоторые из которых могут потенциально мешать именам, используемым в вашей программе).источник