связывание <iostream.h> в linux с использованием gcc - PullRequest
15 голосов
/ 03 февраля 2010

Я пытаюсь запустить свою самую первую программу на С ++ в linux (linux mint 8). Я использую либо gcc, либо g ++, оба с одной и той же проблемой: компилятор не находит библиотеку, которую я пытаюсь импортировать.

Я подозреваю, что мне нужно скопировать файл iostream.h (который я не знаю, где искать) в рабочую папку, переместить мой файл для компиляции в другое место или использовать какой-либо параметр. *

Спасибо за ваши предложения.

Вот команда gcc, код c ++ и сообщение об ошибке:

gcc -o addition listing2.5.c

.

#include <iostream.h>

int Addition(int a, int b)
{
    return (a + b);
}

int main()
{
    cout << "Resultat : " << Addition(2, 4) << "\n";
    return 0;
}

.

listing2.5.c:1:22: error: iostream.h: No such file or directory
listing2.5.c: In function ‘main’:
listing2.5.c:10: error: ‘cout’ undeclared (first use in this function)
listing2.5.c:10: error: (Each undeclared identifier is reported only once
listing2.5.c:10: error: for each function it appears in.)

Теперь код компилируется, но я не могу запустить его из командной строки, используя имя файла. addition: command not found Есть предложения?

Ответы [ 5 ]

26 голосов
/ 03 февраля 2010
  • cout определено в пространстве имен std ::, вам нужно использовать std::cout вместо просто cout.
  • Вы также должны использовать #include <iostream> не старое iostream.h
  • используйте g ++ для компиляции программ на C ++, это будет ссылка в стандартной библиотеке c ++. GCC не будет. gcc также скомпилирует ваш код как код C, если вы дадите ему суффикс .c. Дайте вашим файлам суффикс .cpp.
5 голосов
/ 03 февраля 2010

Вам нужно <iostream>, а не <iostream.h>.

Они также являются заголовочными файлами, а не библиотеками.

Другие исправления, cout должно быть std::cout, и вы должны использоватьstd::endl вместо "\n".

3 голосов
/ 13 мая 2013

используйте g ++, а не gcc для его компиляции

3 голосов
/ 03 февраля 2010

Вам нужно <iostream>, <iostream.h> - это нестандартный слишком старый заголовок.Попробуйте это:

#include <iostream>

int Addition(int a, int b)
{
    return (a + b);
}

int main()
{
    using namespace std;
    cout << "Resultat : " << Addition(2, 4) << "\n";
    return 0;
}
1 голос
/ 28 июля 2016

Если вы не хотите использовать std вместе с cout as-

std::cout << "Hello World";

Вы также можете определить стандартное начало в начале программы с помощью ', используя пространство имен ' ключевые слова как-

     #include <iostream >

     using namespace std;

    int Addition(int a, int b)
    {
        return (a + b);
    }

    int main()
    {
        cout << "Result : " << Addition(2, 4) << "\n";
        return 0;
    }

Теперь вам не нужно писать std каждый раз, когда вы используете операции ввода-вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...