The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Знакомство с gcc"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Знакомство с gcc"
Сообщение от Grinder emailИскать по авторуВ закладки on 05-Ноя-03, 19:28  (MSK)
Я пытаюсь начать писать на C++ под FreeBSD, и сразу же столкнулся с проблемой, наверняка глупой.
Элементарный код:
#include <iostream>
using namespace std;
main () {
 cout << "Hello World\n";
}
не компилится, и пишет, что не может найти iostream. Видимо в переменной окружения нужно прописать какие-то пути? Какие? Или что-то другое?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Знакомство с gcc"
Сообщение от denn emailИскать по авторуВ закладки on 05-Ноя-03, 19:39  (MSK)
проверь ветку. скомпиль если че.
/usr/include/g++/iostream
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Знакомство с gcc"
Сообщение от asso Искать по авторуВ закладки on 06-Ноя-03, 04:45  (MSK)
У тебя наверное gcc совсем древний.  Правильнее (в основном, с точки зрения стиля) писать так:

#include <iostream>

using std::cout;
using std::endl;

int main(int argc, char *argv[])
{
    cout << "Hello World" << endl;
}  

g++ hello.cpp -o hello

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Знакомство с gcc"
Сообщение от Grinder emailИскать по авторуВ закладки on 06-Ноя-03, 09:31  (MSK)
asso спасибо, все нормально скомпилилось.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Знакомство с gcc"
Сообщение от Blackgrin emailИскать по авторуВ закладки on 18-Дек-03, 11:58  (MSK)
У меня была похожая проблема, ничего не хотело компилироаться :(
Полез в путь который было предложено проверить и я обноружил, что в /usr/includes нет g++, но есть c++/3.2/ ну а там уже есть иострим....  Какую версию g++ лучше всего поставить?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Знакомство с gcc"
Сообщение от Blackgrin emailИскать по авторуВ закладки on 18-Дек-03, 22:29  (MSK)
Никак не могу понять :(  данный вариант у меня работает. НО, что еще нужно в будущем писать в using`е? Вот к примеру:
для работы с файлами подключил #include <fstream>
Не понравился компилятору оператор ifstream
написал using std::ifstream;  заработало. Но не буду же я для всех операторов, которые вызываю писать юсинг... да и не уверен, что все будут работать.... Может кто подскажет , что делать?
Версия gcc - 3.2  
  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Знакомство с gcc"
Сообщение от Soldier Искать по авторуВ закладки on 19-Дек-03, 09:43  (MSK)
>Никак не могу понять :(  данный вариант у меня работает. НО,
>что еще нужно в будущем писать в using`е? Вот к примеру:
>
>для работы с файлами подключил #include <fstream>
>Не понравился компилятору оператор ifstream
>написал using std::ifstream;  заработало. Но не буду же я для всех
>операторов, которые вызываю писать юсинг... да и не уверен, что все
>будут работать.... Может кто подскажет , что делать?
>Версия gcc - 3.2

Лично меня этот gcc 3.2 со своими новыми особенностями уже задолбал. То одно ему не нравится, то другое. А разбираться просто времени нет, поэтому я дефалтовым компилером поставил gcc 2.95 - с ним все отлично компилиться. А что касается самого gcc 3.2, то у меня скомпилилось когда заменил  #include <iostream> на #include <iostream.h>  При этом даже не надо было указывать namespace:

//hello.cpp
#include <iostream.h>
main () {
cout << "Hello World\n";
}
//

Компилил: g++ -o hello hello.cpp

Правда при этом g++ ругнулся, что <iostream.h> -  это неправильно, и что надо <iostream>, но можно заставить его заткнуться опцией -Wno-deprecated:

g++ -o hello hello.cpp -Wno-deprecated

Почему оно так все запущено - не разбирался, не до этого сейчас, поэтому не уверен, что сработает у всех  

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Знакомство с gcc"
Сообщение от Soldier Искать по авторуВ закладки on 19-Дек-03, 10:02  (MSK)
>Почему оно так все запущено - не разбирался, не до этого сейчас,
>поэтому не уверен, что сработает у всех

Разобрался :) По идее должно сработать у всех, хотя кто знает :)

P.S. strace наш друг!


  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Знакомство с gcc"
Сообщение от Макс Зиналь emailИскать по авторуВ закладки on 01-Янв-04, 19:37  (MSK)
>Лично меня этот gcc 3.2 со своими новыми особенностями уже задолбал.
>То одно ему не нравится, то другое. А разбираться просто времени нет,

А зря. Не нравится ему, главным образом, код, не соответствующий
стандарту языка. История "возмужания" C++ длинная и сложная, много
есть старомодных фич, которых по уму следовало бы избегать, есть и
такие, использование которых уже сейчас помечено как "не рекомендуемое",
а то и грозящее "неопределённым" результатом.

>поэтому я дефалтовым компилером поставил gcc 2.95 - с ним все отлично
>компилиться. А что касается самого gcc 3.2, то у меня скомпилилось когда
>заменил  #include <iostream> на #include <iostream.h>  При этом даже не
>надо было указывать namespace:
>
>//hello.cpp
>#include <iostream.h>
>main () {
> cout << "Hello World\n";
>}
>//
>
>Компилил: g++ -o hello hello.cpp
>

Пример некорректного антикварного кода. Абсолютно весь runtime (и
унаследованный от C, и относящийся к C++) ныне запихали в std::,
дабы исключить возможные конфликты имён с пользовательскими
идентификаторами. По слухам, <stdio.h> через пару лет могут объявить
"deprecated", так что привыкайте к `#include <cstdio>` да std::printf()
:)

У GCC 3.x серий, по крайней мере, стало существенно лучше с поддержкой
сложных шаблонов. 2.95.3, конечно, в некоем смысле эталон, но - эталон
старомодных практик C++-программирования. Которые в нём достигли своего
апогея как раз после того, как все серьёзные эксперты раскритиковали их
в пух и прах.

А после `using namespace std` должно всё содержимое оного namespace'а
быть доступно. Так что шось у вас с вашей конкретной локальной установкой
GCC не то.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Знакомство с gcc"
Сообщение от Soldier emailИскать по авторуВ закладки on 05-Янв-04, 08:01  (MSK)
>>Лично меня этот gcc 3.2 со своими новыми особенностями уже задолбал.
>>То одно ему не нравится, то другое. А разбираться просто времени нет,
>
>А зря. Не нравится ему, главным образом, код, не соответствующий
>стандарту языка. История "возмужания" C++ длинная и сложная, много
>есть старомодных фич, которых по уму следовало бы избегать, есть и
>такие, использование которых уже сейчас помечено как "не рекомендуемое",
>а то и грозящее "неопределённым" результатом.

А что именно зря? Реальная ситуация - открыли свою конторку, весь софт сгоряча
решили писать сами, программировать умеют трое, реально рассчитывать можно на
двоих. Весь год сплошной аврал. Програмлю я уже довольно давно и у меня своих
наработок с мегабайт исходного текста еще с ДОС-овских времен. Естественно я время
от времени эти наработки использую и естественно там сплошь и рядом "старомодные
фичи". И вот мне надо что-то срочно сделать, а у gcc 3.2.x понимаешь ли теперь
"новомодные фичи" появились. Помоему вполне естественное решение вернуть старый
добрый gcc 2.95, а "разборки" с gcc 3.2 отложить до более подходящего момента.


>>поэтому я дефалтовым компилером поставил gcc 2.95 - с ним все отлично
>>компилиться. А что касается самого gcc 3.2, то у меня скомпилилось когда
>>заменил  #include <iostream> на #include <iostream.h>  При этом даже не
>>надо было указывать namespace:
>>
>>//hello.cpp
>>#include <iostream.h>
>>main () {
>> cout << "Hello World\n";
>>}
>>//
>>
>>Компилил: g++ -o hello hello.cpp
>>
>
>Пример некорректного антикварного кода. Абсолютно весь runtime (и
>унаследованный от C, и относящийся к C++) ныне запихали в std::,
>дабы исключить возможные конфликты имён с пользовательскими
>идентификаторами. По слухам, <stdio.h> через пару лет могут объявить
>"deprecated", так что привыкайте к `#include <cstdio>` да std::printf()
>:)
>
>У GCC 3.x серий, по крайней мере, стало существенно лучше с поддержкой
>
>сложных шаблонов. 2.95.3, конечно, в некоем смысле эталон, но - эталон
>старомодных практик C++-программирования. Которые в нём достигли своего
>апогея как раз после того, как все серьёзные эксперты раскритиковали их
>в пух и прах.
>

В принципе спасибо за лекцию, только я уже сам более или менее во всем разобрался -
читать вроде еще не разучился, да и Интернет всегда под рукой:))) И даже потихоньку
правлю кое-какой код. Благо мой 2.95.4 и с большинством "новых фич" работает
нормально :)))

Да и насчет iostream.h - для полноты картины, вы забыли упомянуть, что там есть строки
#include <iostream> и using std::cout
- поэтому оно все и сработало. ;-)


>А после `using namespace std` должно всё содержимое оного namespace'а
>быть доступно. Так что шось у вас с вашей конкретной локальной установкой
>
>GCC не то.

А это вы к чему и о чем? Я вроде ни на что подобное не жаловался :)))

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Знакомство с gcc"
Сообщение от Макс Зиналь emailИскать по авторуВ закладки on 05-Янв-04, 20:01  (MSK)
>В принципе спасибо за лекцию, только я уже сам более или менее во всем
>разобрался - читать вроде еще не разучился, да и Интернет всегда под

Приятно встретить человека, который не разучился читать - а то нынче
развелось неграмотных - ANY KEY на клавиатуре найти не могут :).

>рукой:))) И даже потихоньку правлю кое-какой код. Благо мой 2.95.4 и с
>большинством "новых фич" работает нормально :)))

http://boost.sourceforge.net/regression-logs/cs-Linux.html

Можно сравнить 2.95.3 с набором прочих компиляторов по сугубо
формальным признакам.

>Да и насчет iostream.h - для полноты картины, вы забыли упомянуть,
>что там есть строки #include <iostream> и using std::cout
>- поэтому оно все и сработало. ;-)

Как обычно - все зависит от компилятора. Он вовсе не обязан именно
так реализовывать "старомодный" STL. Есть, например, весьма культурный
компилятор от HP под названием aCC, так вот у него #include <iostream>
и #include <iostream.h> в одной программе приводит к килограмму ошибок
на линковке. И это вполне допускается стандартом.

> А это вы к чему и о чем? Я вроде ни на что подобное не жаловался :)))

Перечитайте исходное сообщение от некоего Grinder.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Знакомство с gcc"
Сообщение от Soldier emailИскать по авторуВ закладки on 06-Янв-04, 06:01  (MSK)
>>Да и насчет iostream.h - для полноты картины, вы забыли упомянуть,
>>что там есть строки #include <iostream> и using std::cout
>>- поэтому оно все и сработало. ;-)
>
>Как обычно - все зависит от компилятора. Он вовсе не обязан именно
>
>так реализовывать "старомодный" STL. Есть, например, весьма культурный
>компилятор от HP под названием aCC, так вот у него #include <iostream>
>и #include <iostream.h> в одной программе приводит к килограмму ошибок
>на линковке. И это вполне допускается стандартом.

Перечитайте исходное сообщение от некоего Grinder. Речь шла о gcc :)))

>> А это вы к чему и о чем? Я вроде ни на что подобное не жаловался :)))
>
>Перечитайте исходное сообщение от некоего Grinder.

Ну так и ответили б некоему Grinder - я то тут причем??? :)))

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Знакомство с gcc"
Сообщение от Макс Зиналь emailИскать по авторуВ закладки on 06-Янв-04, 20:59  (MSK)
>Перечитайте исходное сообщение от некоего Grinder. Речь шла о gcc :)))
>

А Вы собираетесь писать не на C++, а на некоем специальном GNU C++?
Тогда Вас погубит команда GCCшных же разработчиков - они почему-то
не очень-то серьёзно воспринимают "проблемы" обратной совместимости
со старыми глюками, а ориентируются на стандарт :).

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Знакомство с gcc"
Сообщение от Soldier Искать по авторуВ закладки on 06-Янв-04, 21:57  (MSK)
>>Перечитайте исходное сообщение от некоего Grinder. Речь шла о gcc :)))
>>
>
>А Вы собираетесь писать не на C++, а на некоем специальном GNU
>C++?
>Тогда Вас погубит команда GCCшных же разработчиков - они почему-то
>не очень-то серьёзно воспринимают "проблемы" обратной совместимости
>со старыми глюками, а ориентируются на стандарт :).

Нда... Куда нас понесло-то. Вы случайно учителем в школе не работаете? Или в ВУЗ-е
каком? :))) Вообще говоря речь шла о конкретных проблемах с конкретным компилятором
и давались советы как это дело победить и речь шла опять же о конкретном
компиляторе. Мой самый первый пост (тред номер 6) - это не критика и не вопрос, а
просто констатация факта - ну в самом деле задолбал меня этот gcc 3.2,  пока был
дефалтовым компилером.  Вы  же непонятно с чего сделали какие-то странные выводы о
том на чем я там собираюсь писать и непонятно зачем запостили чуть ли не статью о
новых стандартах написания программ на С++.  Отдавая должное вашей эрудиции и
знаниям, мне все же показалось, что ваш пост номер 8 был несколько не в тему,
поскольку адресовался лично мне, а я ни о чем подобном не спрашивал, так как
считаю, что с такими вещами вполне могу разобраться самостоятельно.


P.S. А клавишу ANY KEY я у себя тоже не нашел. Может подскажете где ее поискать:)))

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру