Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Ошибка компиляции, нет файла iostream.h  (Прочитано 18687 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Lifewalker

  • Гость
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #15 : 15 Мая 2012, 21:14:19 »
Ваше мнение можно было бы учитывать, если бы оно было не настолько переполнено фанатизмом.
Ну что поделать, я фанатик. Фанатик эффективности, надёжности и безопасности. :) Как же мне быть, если ни один из представленных альтернативных Модуле/Оберону вариантов не удовлетворяет моим представлениям об оных категориях.

Один пример моего фанатизма, только один: для меня дикостью является ситуация, когда объявленная переменная может иметь неопределённое значение в момент первого использования - ну это же бредятина полная с точки зрения здравого смысла. Собственно, приведённый мною выше пример успешно компилируемой программы на Си является демонстрацией этой дикости.

P.S. Кстати, про дикость. По-диагонали почитываю статейки про новинки в области языкостроения и наткнулся как-то на презанятное тестирование компиляторов Си++. Через них была пропущена программка, похожая на мою, только более осмысленная с целью определить, как компиляторы разбираются с приоритетами операции и т.д. В результате программы, созданные разными компиляторами давали разные результаты вычислений! Это нормально вообще?
« Последнее редактирование: 15 Мая 2012, 21:18:07 от Lifewalker »

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #16 : 15 Мая 2012, 22:43:53 »
Конечно, так как каждый пишет компилятор как хочет.

Реальный пример из моей практики: собрал программу свою (5к строк) через GCC - падает (при разработке юзаю только clang). Пришлось долго и нудно искать ошибку. Оказалось что проверка наличия объекта по указателю вызывало падения на GCC.
Я про:
QWidget *widget;
if (!widget) {
...
}
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн mkarasik

  • Участник
  • *
  • Сообщений: 163
    • Просмотр профиля
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #17 : 16 Мая 2012, 03:17:48 »
для меня дикостью является ситуация, когда объявленная переменная может иметь неопределённое значение в момент первого использования - ну это же бредятина полная с точки зрения здравого смысла. Собственно, приведённый мною выше пример успешно компилируемой программы на Си является демонстрацией этой дикости

Ну а для меня дикостью является необходимость инициализации переменной до ее использования. Когда мне надо, тогда и проинициализирую и это здравый смысл в моем понимании. А насчет компиляции ну так если , подними уровень вредности компилятора и он тебе ошибку эту не пропустит. Не буду тут спорить какой язык лучше, у каждого своя область применения.

+30% за оскорбления участника форума.
« Последнее редактирование: 16 Мая 2012, 19:47:02 от VinnyPooh »

Lifewalker

  • Гость
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #18 : 16 Мая 2012, 07:23:31 »
Конечно, так как каждый пишет компилятор как хочет.
Видимо, я не очень конкретно выразился. Разные компиляторы давали разные результаты вычисления одного и того же выражения! Это нормально? Если да, то я чего-то в этой жизни не понимаю.

Значит, когда я пишу программу на Си(++), то я не могу быть уверен в определённости конечного результата вычислений? Это новое слово в математике, чесслово! :)

P.S. Жаль навскидку не могу найти пруф, давненько это было. Но я попытаюсь найти.

Пользователь решил продолжить мысль 16 Мая 2012, 07:28:54:
Ну а для меня дикостью является необходимость инициализации переменной до ее использования.
Кто же вас заставляет? Компилятор Модулы/Оберона сам об этом позаботится.

Когда мне надо, тогда и проинициализирую и это здравый смысл в моем понимании.
Очень интересно наблюдать за похождениями нуба в отладчике, когда он банально забыл проинициализировать переменную. Какая продуктивность!

А насчет компиляции ну так если своих мозгов нет, подними уровень вредности компилятора и он тебе ошибку эту не пропустит.
Спасибо, весело.

Не буду тут спорить какой язык лучше, у каждого своя область применения.
Words of wisdom!

Просто нечего в лужу пердеть.
Мда, очень и очень вежливо. Вы, дорогой, не в тот форум вломились. Тут не ЛОР, поосторожнее.
« Последнее редактирование: 16 Мая 2012, 07:28:54 от Lifewalker »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #19 : 16 Мая 2012, 07:31:16 »
Покормлю и я троля =)
Понимаете, уважаемый Señor_Gaga, в головах «профессионалов» язык, не позволяющий написать фигню вроде
int main(void)
{
    int i;
    if (i=i++ - ++i) --i;
    return i;
}
не язык вовсе, а так, недоразумение. И ведь этот бред компилируется без ошибок и даже выполняется! Лично я вообще не понимаю, что я тут написал и не представляю что вернёт i, но компилятор понимает и не ругается ни разу. «Профессионалы» видимо тоже увидят в этом сакральный смысл :)
yurik@yurik-book:~$ gcc -Wall test.c
test.c: В функции «main»:
test.c:4:5: предупреждение: присваивание, используемое как логическое выражение, рекомендуется [-Wparentheses]
test.c:4:10: предупреждение: операция над «i» может дать неопределенный результат [-Wsequence-point]
test.c:4:10: предупреждение: операция над «i» может дать неопределенный результат [-Wsequence-point]
test.c:4:8: предупреждение: «i» is used uninitialized in this function [-Wuninitialized]
Постеснялся бы, профессионал  :2funny:
Lifewalker,
да, это нормально. ибо компилятор предупреждал. он сделает что попросили. стандарт в этом случае склеивает ласты и отдаёт все на откуп реализации компилятора, а тот в свою очередь воле случая...
иногда лучше жевать (с)

Lifewalker

  • Гость
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #20 : 16 Мая 2012, 07:40:03 »
Разве я не упоминал о предупреждениях? Точно, не упоминал. Ну ладно, есть предупреждения, есть. Но ошибок-то нет! :)

Или я мало смайлов нафтыкал или как? Ещё раз повторяю. Я специально написал абсолютно бредовый кусок программы, ну полную фигню. Есть язык, позволяющий написать эту фигню, есть компилятор, воспринимающий такую фигню. Для реальной работы такие инструменты не пригодны, их существование не оправдано, их изучение есть убийство времени и сил. Стою на этом и буду стоять.
« Последнее редактирование: 16 Мая 2012, 07:44:23 от Lifewalker »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #21 : 16 Мая 2012, 07:48:15 »
Верю, не пригодно. Вилкой ведь в глаз ткнуть можно, изъять вилки у населения! Они не пригодны для поедания пищи!
Вот вилкой тебя в детстве пользоваться научили и объяснили что свой глаз есть нельзя
А на уроках по Си тебе не объяснили что i++ + ++i это бяка - делаем вывод "Си не нужен"
Категорически согласен. Сколько смайлов воткнуть?

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #22 : 16 Мая 2012, 11:35:41 »
Но ошибок-то нет! :)
Ну а вдруг мне именно оно и нужно?
Я вообще удивляюсь когда при компиляции проги у нее 100500 варнингов, значит человек считает что это нормально, даже если это не так.
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн trillka

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #23 : 16 Мая 2012, 11:53:19 »
Блин, столкнулся с той же проблемой, что и автор этой темы

#include <stdio.h>
#include <iostream.h>

int main(int argc, char **argv)
{
cout<< "Hello world";
getchar();
return 0;
}

Выдает ту же ошибку

Без имени.c:24:22: фатальная ошибка: iostream.h: Нет такого файла или каталога

Перепробовал писать каталог и без .h все равно не помогает, подскажите пожалуйста, в чем дело?

Оффлайн trillka

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #24 : 16 Мая 2012, 19:37:10 »
Ну так в чем проблема то? :-[

Оффлайн Zeka13

  • Старожил
  • *
  • Сообщений: 1177
  • 18.10 Gnome x64 GTX 970
    • Просмотр профиля
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #25 : 16 Мая 2012, 22:20:31 »
так ведь

#include <iostream>

using namespace std;
Если Wine - это костыль , то  Punto Switcher - это протез , а Daemon Tools инвалидное кресло.

Оффлайн yorik1984

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 1592
  • Кто не хочет, ищет причины
    • Просмотр профиля
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #26 : 16 Мая 2012, 22:38:12 »
так ведь

#include <iostream>

using namespace std;
У него программа на Си.
Надо без #include <iostream.h> и cout нет в Си. А только printf.
trillka,
На какомя языке программа то? А то какой-то винегрет :o
« Последнее редактирование: 16 Мая 2012, 22:39:59 от yorik1984 »

Оффлайн trillka

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #27 : 17 Мая 2012, 03:08:55 »
Проблема решена!

Для тех кто столкнется с ней: необходимо сохранить файл, затем скомпилировать => собрать => и уже потом запускать

По поводу библиотек. Т.к. Geany не совсем умный как Borland то он ругается на объявление библиотек. Есть древние библиотеки (.h) и новые ( соответственно без .h). Вставить необходимую библиотеку: Правка => Вставить "include <...>"

И ещё. conio.h библиотеки не существует в geany поэтому вместо моего любимого getch() приходится использовать getchar()

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #28 : 17 Мая 2012, 06:25:54 »
Проблема решена!

Для тех кто столкнется с ней: необходимо сохранить файл, затем скомпилировать => собрать => и уже потом запускать

По поводу библиотек. Т.к. Geany не совсем умный как Borland то он ругается на объявление библиотек. Есть древние библиотеки (.h) и новые ( соответственно без .h). Вставить необходимую библиотеку: Правка => Вставить "include <...>"

И ещё. conio.h библиотеки не существует в geany поэтому вместо моего любимого getch() приходится использовать getchar()
Мыши плакали кололись но продолжали жрать кактус =)

Lifewalker

  • Гость
Re: Ошибка компиляции, нет файла iostream.h
« Ответ #29 : 17 Мая 2012, 06:38:21 »
Мыши плакали кололись но продолжали жрать кактус =)
Ну а я тупо по-пролетарски продолжаю бубнить

MODULE xxx;
FROM yyy IMPORT zzz;
BEGIN
  (* some ops *)
END xxx.

И вот что занятно — оно работает! :)
« Последнее редактирование: 17 Мая 2012, 06:40:35 от Lifewalker »

 

Страница сгенерирована за 0.034 секунд. Запросов: 25.