LINUX.ORG.RU

Компилятор С++, Debian Sarge


0

0

Здравствуйте! У меня проблема: решил написть простейшую программу на С++ под Linux, нашёл сайт http://firststeps.ru/linux/ - оттуда содрал исходник

//step1.cpp #include <stdio.h>

int main(){ printf("[http://linux.firststeps.ru]\n"); printf("Our first program for Linux.\n"); return 0; };

Далее по инструкции -

gcc step1.cpp ./a.out

В итоге - куча ошибок(если надо - могу выложить лог), если переимановать файл в step1.c то всё работает. Мой препод по С++ в универе сказал что дело в компиляторе... Но мне что-то в это мало верится. Может кто с таким сталкивался? Чем лечится?

З.Ы. как расшифровывается GNU? :)

ГЫ! Прога твоя ни разу не на С++, чисто С.
Лечитсо чтением man gcc!

sabonez ★☆☆☆
()

>#include <stdio.h>

Компилятор не знает, где это искать.

>З.Ы. как расшифровывается GNU? :)

GNU's Not UNIX.

suser
()
Ответ на: комментарий от suser

Хорошо. Попытался откомпилировать другой вариант. Чистый С++:

# include <iostream.h> int main() { cout << "Hello, world!\n"; return 0; }

Два листа ошибок :(( Прочитал man. Вроде бы всё так. Попробуй, пожалуйста откомпилировать такое у себя.

> Компилятор не знает, где это искать.

Хмм... Всмысле не знает? <...> - значит искать в стандартных местах типа /usr/include и тд. ( во всяком случае в виндах так, если нет - пожалуйста, поправь меня )

for_aiur
() автор топика
Ответ на: комментарий от for_aiur

блин а ты с++ то знаешь?

$cat test.cpp
#include <iostream>
int main() { std::cout<<"Hello, world!"<<std::endl; return 0; }

$g++ test.cpp && ./a.out

anonymous
()
Ответ на: комментарий от anonymous

> блин а ты с++ то знаешь? Учу немного... под винду...

Этот исходник насколько я понимаю аналогичен

#include <iostream> using namespace std;

int main() { cout << "bla bla" << endl; return 0; }

так? А как написать такую же программу используя <iostream.h> а не <iostream> - я к первому привык...

for_aiur
() автор топика
Ответ на: комментарий от for_aiur

<iostream.h> оставлен для совмесимости с старым стандартом, но gcc не советует его использовть. Чем тебе не нравится <iostream>? Если уж хочешь то

g++ foo.cpp -Wno-deprecated

и еще выкинь [using namespace std;] для совмесимости со старыми компиляторами.

stassats ★★★★
()
Ответ на: комментарий от for_aiur

>я к первому привык..

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

anonymous
()
Ответ на: комментарий от anonymous

> всем плевать к чему ты привык,

Помоему, Linux тем и отличается от win, что я могу писать что хочу, как хочу и на каком угодно стандарте, и если я не хочу, то никто меня ня новую технологию не переведёт. Это основа идеологии *nix систем. А не то, что только успел выучить MFC - учи .NET, т.к. MFC якобы устарела.

Кстати, спасибо тебе. Проблема была действительно с компилятором. Стоило откомпилировать это с помощью g++ - всё заработало, где gcc ругался матом.

> Чем тебе не нравится <iostream>? Если уж хочешь то Всё подходит, всё отлично, просто привычка... Ну в принципе пора переучится, что бы в g++ постоянно -Wno-deprecated не дописывать. Лень :)

Меня просто ввела в тупик фраза из man gcc - что GCC это GNU Compiler Collection, и что там поддерживаются C, C++, Java, Object C etc etc etc... В итоге куча глюков. Спасибо всем, кто помог!!! В итоге разобрался с первой программой - дальше всё пойдёт как по маслу :)

for_aiur
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.