Re[8]: зависимости .cpp от .h. Как?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 03.11.05 14:45
Оценка:
Здравствуйте, _Winnie, Вы писали:

E>>>Здравствуйте, _Winnie, Вы писали:


E>>distcc: a fast, free distributed C/C++ compiler

_W>Не под винду

Это обертка над GNU C++. А под Windows она есть в составе cygwin-а.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: зависимости .cpp от .h. Как?
От: BLK Dragon  
Дата: 03.11.05 18:04
Оценка:
_W>Как самостоятельно автоматически строить зависимости? Нужно для велосипедного make, генерирующегося из vcproj.
У компилера как правило есть ключики, которые выдают депенденсы в формате понятном для make'ов; обычно есть и опции игнорирования стандартных header'ов.

В Intel'е и GCC такие опции есть, у Visual'а нет (может только в 8м -- давно его не смотрел).

У меня так всё и работает -- когда меняется .cpp, для него перегенерятся зависимости; зависимости include'яться в тот же makefile.
Re[2]: зависимости .cpp от .h. Как?
От: megawatt Россия http://ruby.inuse.ru
Дата: 03.11.05 18:08
Оценка: 5 (1)
Здравствуйте, Глеб Алексеев, Вы писали:

ГА>Здравствуйте, _Winnie, Вы писали:


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

_W>>Как самостоятельно автоматически строить зависимости? Нужно для велосипедного make, генерирующегося из vcproj.
ГА>У cl есть ключик /showIncludes. Правда, придется как-то отличать стандартные файлы от файлов проекта.

ГА>А g++ вроде тоже должен быть аналогичный ключик. Насколько я знаю (а в сборке проектов без студии — я еще тот ламер), это обычный подход. Даже для ocaml есть утилита ocamldep, которая генерит зависимости в виде

ГА>filename.cmo : filename.ml (cmo -объектник, ml — исходник).

ГА>а в конце мэйкфайла вставляешь include .depend и все.


У gcc список инклудов можно вежливо попросить следующими опциями:

-MD или -MMD (без системных инклудов)

Стандартные файлы отличать не надо, они ни кому не мешают, вот кусочек make файла:


%.o: %.cpp
  g++ -c -MD $<

include $(wildcard *.d)


компилит все .cpp ставя все инклуды в зависимости

Для паралельной сборки у тогоже gmake есть опция -j 5, суть которой — выполнять независимые таргеты параллельно.
На больших проектах иногда в системе происходит переполнение таблицы открытых файлов, и gmake ведет себя непредсказуемо.
Решается проблема увеличением установленного лимита.
Re[3]: зависимости .cpp от .h. Как?
От: megawatt Россия http://ruby.inuse.ru
Дата: 03.11.05 18:11
Оценка:
Здравствуйте, _Winnie, Вы писали:

_W>Надо посмотреть, может ли студия разрулить кошмар вроде


_W>#include BOOST_PP_STRINGIZE(BOOST__PP_CAT(algo, rithm))



Какие трудности? Студия проходится макропроцессором, и только потом компилит.
Re: зависимости .cpp от .h. Как?
От: KRA Украина  
Дата: 06.11.05 20:00
Оценка: 4 (1)
Здравствуйте, _Winnie, Вы писали:

_W>Как самостоятельно автоматически строить зависимости? Нужно для велосипедного make, генерирующегося из vcproj.


Посмотри может makedep подойдёт.
Пользовался — вроде ничего, правда, не знаю, справится ли с таким

_W>#include BOOST_PP_STRINGIZE(BOOST__PP_CAT(algo, rithm))
Re[6]: зависимости .cpp от .h. Как?
От: Erop Россия  
Дата: 06.11.05 21:47
Оценка:
Здравствуйте, eao197, Вы писали:

E>Месье, вам нужна параллельная или распределенная компиляция?


Не знаю как кому, а нам нужна параллельная и распределенная разработка.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: зависимости .cpp от .h. Как?
От: Alex Alexandrov США  
Дата: 11.11.05 05:54
Оценка:
Здравствуйте, _Winnie, Вы писали:

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


_W>Как самостоятельно автоматически строить зависимости? Нужно для велосипедного make, генерирующегося из vcproj.


Общая идея примерно такова:

cl -E test.c | sed -n "s/^#line [0-9]\+ //p" | sort | uniq
It's kind of fun to do the impossible (Walt Disney)
Re: зависимости .cpp от .h. Как?
От: Июнь  
Дата: 11.11.05 12:30
Оценка:
Здравствуйте, _Winnie, Вы писали:

_W>Как самостоятельно автоматически строить зависимости? Нужно для велосипедного make, генерирующегося из vcproj.


Может исходники этого проекта помогут.
Re: зависимости .cpp от .h. Как?
От: BOPOH_N Россия  
Дата: 14.11.05 10:31
Оценка:
Здравствуйте, _Winnie, Вы писали:

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


_W>Как самостоятельно автоматически строить зависимости? Нужно для велосипедного make, генерирующегося из vcproj.


Смотрите boost 1.33 библиотека WAVE
есть даже готовый пример обработки прагм и поиска инклюженых файлов — "The quick_start sample"
В искустве летать есть один маленький секрет. Секрет этот в том,чтобы бросить себя изо всех сил на землю — и не попасть. Выберете погожий денек и попробуйте сами.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.