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


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

Автор Тема: Как компилить С++ в Linux?  (Прочитано 3349 раз)

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

Оффлайн Protopopulus

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1695
  • А чего вы так смотрите?..
    • Просмотр профиля
Как компилить С++ в Linux?
« : 20 Августа 2009, 01:24:07 »
В общем взялся таки за С++, и, как водится, сразу же возникла куча вопросов. Главный вопрос сейчас для меня такой: Какие ключи указывать при компиляции файла *.cpp, чтобы не выдавало ошибку типа такой?
(Нажмите, чтобы показать/скрыть)
И, если не трудно, то подскажите литературку или сайты, где можно на эту тему посмотреть. Гуглил часа два с половиной, но так толком ничего цельного и доступного не нашел :-\
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн digiwhite

  • Активист
  • *
  • Сообщений: 732
  • http://www.welinux.ru
    • Просмотр профиля
    • http://www.welinux.ru
Re: Как компилить С++ в Linux?
« Ответ #1 : 20 Августа 2009, 01:44:10 »
g++ -I/usr/include -g2 -с a.cpp
g++ -I/usr/include -o file -o a.o

Где-то так. Исполняемым файлом будет file. В первой строке происходит компиляция и получается объектный файл a.o, после этого линкуем его в исполняемый файл уже.

Ключи:
-I/путь/к/каталогу/с/заголовочными/файлами - указывает где искать заголовочные файлы
-g - добавить отладочную информацию
-lимя_библиотеки - линковать со статической библиотекой.

Посмотрите это сайт: http://www.cplusplus.com/, например. Ну и ключи компилятора можно в справке посмотреть.
Социальная сеть не фанатично настроенных линуксойдов - http://www.welinux.ru

Оффлайн Protopopulus

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1695
  • А чего вы так смотрите?..
    • Просмотр профиля
Re: Как компилить С++ в Linux?
« Ответ #2 : 20 Августа 2009, 02:02:37 »
Спасибо :)
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Как компилить С++ в Linux?
« Ответ #3 : 20 Августа 2009, 03:02:03 »
В общем взялся таки за С++, и, как водится, сразу же возникла куча вопросов. Главный вопрос...
...
./a.cpp:1:22: error: iostream.h: No such file or directory
...
Чтоб не было подобных кучерявых вопросов стоит взять книжку поновее, основанную на стандарте хотя бы 1998 года. Ну, и поиском по гуглу не забывать пользоваться: бери и скармливай ему сообщения об ошибках.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Как компилить С++ в Linux?
« Ответ #4 : 20 Августа 2009, 09:11:46 »
наверное стоит предупредить человека что заголовочных файлов
conio.h
bios.h
graph.h
что там еще? кто вспомнит?
в стандарте (и соответственно в gcc/g++) нет.
Если найдешь примеры с такими вот инклюдами стоит очень сильно задуматься о платформе для которой пример и об авторитетности источника.

P.S. надеюсь не будешь требовать предоставить тебе windows.h

Оффлайн Protopopulus

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1695
  • А чего вы так смотрите?..
    • Просмотр профиля
Re: Как компилить С++ в Linux?
« Ответ #5 : 20 Августа 2009, 18:04:54 »
Всё, кажись, разобрался с этим делом... Просто пример был некорректным, видимо писали его на скорую руку, вот и возник трабл. Посмотрел какие заголовки есть в /usr/include - теперь знаю что можно подключать, а чего компилятор не найдет. За советы спасибо.

По поводу того, что ошибки гуглу скармливать, это, конечно можно, но занимает слишком много времени и предоставляет слишком мало полноценной информации.
(Нажмите, чтобы показать/скрыть)
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн Protopopulus

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1695
  • А чего вы так смотрите?..
    • Просмотр профиля
Re: Как компилить С++ в Linux?
« Ответ #6 : 24 Августа 2009, 02:13:28 »
Объясните нерадивому где же взять все необходимые заголовочные файлы для успешной компиляции программ? К примеру, пробовал откомпилить firefox-3.5, сделал sudo apt-get build-dep firefox-3.5, так при конфигурации жалуется на отсутствие заголовков в /usr/include/curl/curl.h... Но это еще пол-беды, ибо во множестве примеров по С++ в код идет включение заголовка iostream.h, так его у мну тоже нет, хотя поставлены компиляторы gcc, gpp, cpp, etc. Вот и выполз вопрос... Откуда взять все нужные заголовки? Какие пакеты ставить для нормального программирования на С++?
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Как компилить С++ в Linux?
« Ответ #7 : 24 Августа 2009, 04:34:05 »
Прочитать прикреплённые темы в соседнем разделе https://forum.ubuntu.ru/index.php?board=13.0

gpp и cpp не компиляторы :coolsmiley:

Про iostream.h уже писал выше, данный заголовочный файл в новом стандарте C++ не используется, вообще, в стандартной библиотеке все заголовочные файлы без расширения .h, посему и совет был найти книжки поновее, ну, либо делай «поправку на ветер».

Ну, а для того, чтобы ответить на вопрос: «что ещё ставить», — расшифруй, что ты понимаешь под «нормальным программированием на С++».

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Как компилить С++ в Linux?
« Ответ #8 : 24 Августа 2009, 05:45:41 »
Protopopulus, libcurl-dev
Угадай какой пакет надо будет установить если вдруг не окажется заголовочных файлов pcap.h (ну это я для примера)

для нормального программирования на С++ хватит нормально установленного пакета build-essential
если совсем фанатик С++ поставь еще и boost
остальное это библиотеки. Если хочешь писать программы с их использованием то удосужся установить не только библиотеки но срадства разработки для этих самых библиотек (*-dev пакеты, от слова development)

Оффлайн Protopopulus

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1695
  • А чего вы так смотрите?..
    • Просмотр профиля
Re: Как компилить С++ в Linux?
« Ответ #9 : 24 Августа 2009, 18:07:41 »
Спасибо за нежные пинки. :) Пойду курить гугл на предмет новых книжек, хотя книжки у меня аж 2006 года, и в них везде используется этот iostream :-\ Ну, да ладно...
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн maximum2000

  • Активист
  • *
  • Сообщений: 403
    • Просмотр профиля
Re: Как компилить С++ в Linux?
« Ответ #10 : 25 Августа 2009, 15:30:46 »
Да забей на iostream ... это мелочи. изучай язык дальше :)

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Как компилить С++ в Linux?
« Ответ #11 : 27 Августа 2009, 23:33:06 »
Объясните нерадивому где же взять все необходимые заголовочные файлы для успешной компиляции программ? К примеру, пробовал откомпилить firefox-3.5, сделал sudo apt-get build-dep firefox-3.5, так при конфигурации жалуется на отсутствие заголовков в /usr/include/curl/curl.h...
Откуда взять все нужные заголовки? Какие пакеты ставить для нормального программирования на С++?

Могу посоветовать такую ссылку: packages.ubuntu.com. В разделе "Search the contents of packages" введи в форме название нужного тебе файла (+ другие опции по необходимости) и смотри, в каком пакете этот файл есть и по какому пути он будет расположен.

Оффлайн timerlan

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
    • Работаем в Линукс!
Re: Как компилить С++ в Linux?
« Ответ #12 : 28 Августа 2009, 20:31:35 »
Я не шарю в программировании(пока...), но самый нормальный сайт по технической литературе это [censored] Почти все книги качаю оттуда, ну ещё с [censored] но щас то ли сервер  упал, то ли сайт переходит на другой хост...

--
У нас так не принято. Нашёл хорошую книгу - дай ссылку на рецензию.
-- kwah
« Последнее редактирование: 29 Августа 2009, 23:16:37 от Kwah »
Жопа есть универсальный интерфейс ибо через неё можно сделать всё что угодно!!!

 

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