LINUX.ORG.RU

1. только компилирует код в обьектный файл, не производя линковку, те мы не получаем исполняемого файла. Ничем не лучше - это просто другое.
2. почти так же, как и при обычной работе в шелле - можно задавать относительные\абсолютные пути.

Причём здесь С++ ?

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

1. а нафиг он вообще нужен тогда?

2. тоесть все файлы которые я укажу тамже где include тоже его унаследуют?

Дайте манов по теме! Сам даже не знаю что толком искать.

Andaril
() автор топика

> 1. Что происходит при g++ -c file и чем он лучше g++ -o?
Это, по идее, совершенно разные опции. -o <имя файла> помещает вывод в указанный файл, вне зависимости от того, какой там вывод (без нее имя файла для вывода определяется автоматически по типу выводимых данных). -c велит GCC не вызывать линкер, а только скомпилировать объектный код.

2. Поясните: я задаю #include "...". Как он распространяется по иерархии файлов?

Если выше на вопрос не ответили, уточните, в чем смысл вопроса.

proud_anon ★★★★★
()

1. Что происходит при g++ -c file и чем он лучше g++ -o?

Вопрос не совсем корректен: -c указывает, что необходимо выполнить фазу компиляции, не производя линковку; -o указывает имя выходного файла.

2. Поясните: я задаю #include "...". Как он распространяется по иерархии файлов?

#include <abc.h> банально вставляет содержимое файла abc.h в файл, который содержит директиву, если ты об этом.

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

> 2. тоесть все файлы которые я укажу тамже где include тоже его унаследуют?

Предположим есть файлы a.h, b.h, x.cpp;

b.h содержит #include <a.h>;

x.cpp содержит #include <b.h>

На стадии препроцессинга содержимое a.h будет вставлено в b.h, содержимое результирующего b.h будет вставлено в x.cpp, после чего последний и будет скомпилирован.

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

Стоит дополнить, что из-за таких рекурсивных вставок может возникнуть ситуация, когда содержимое некоторого a.h будет вставлено в x.cpp несколько раз. Для борьбы с эти испульзуется include guard:

#ifndef __A_H__ 
#define __A_H__ 

// содержимое файла

#endif
runtime ★★★★
()
Ответ на: комментарий от proud_anon

Я просто суть линковки не понимаю. Что происходит и зачем. При этом не могу найдти определения.

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

Линковка это такая необходимая для убогих и/или низкоуровневых языков стадия создания исполняемого файла на убогих современных ос.

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

А не в SBCL ли была такая проблема: при обновлении SBCL требуется перекомпилять все программы написанные на лиспе (То есть maxima, больше ничего на Лиспе нет).

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

пиши где удобно, где удобно, это не столь важно.

на тему компиляции - посмотри в сторону scons (т.е. в сторону систем сборок, мне лично scons нра).

dpt-ru
()
Ответ на: комментарий от dpt-ru

<off>доренайсился блин, хронимиум жутко тормозит при вводе текста.</off>

dpt-ru
()
Ответ на: комментарий от Pantserovik

1. KDevelop (!*er)
2. А ты попробуй пошмакать в 4-ом:), я паржу...
3. Нифига не красивые, да и кнопок всего 4 :)

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

Пишу в Кдевелоп, компилю в терминале, дебажу в терминале, живу в терминале, ем в тер^W^W перед терминалом....
Жена иногда спрашивает «Ты всю жизнь просидишь перед черным экраном с зелеными буковками?»... Хз че ответить :)

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

>Жена иногда спрашивает «Ты всю жизнь просидишь перед черным экраном с зелеными буковками?»... Хз че ответить :)

Скажи что это все ради неё!

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

> Жена иногда спрашивает «Ты всю жизнь просидишь перед черным экраном с зелеными буковками?»... Хз че ответить :)

Поставь жёлтые буквы на чёрном фоне. Будет не менее Ъ, зато можно будет честно утверждать, что не всегда. 8))

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

1. а нафиг он вообще нужен тогда?

Проект состоит из 20000 файлов по 2к срок кода в каждом, ты изменил в одном значение константы в одном, предлагаешь перекомпиливать их все? или перекомпилить только один, а потом слинковать его с уже давно скомпилированными 19999 файлами?

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