powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / найти все файлы, включающие определенный файл
20 сообщений из 20, страница 1 из 1
найти все файлы, включающие определенный файл
    #39327873
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добра всем.
я тут захотел ускорить компиляцию, наткнулся, что у меня иногда остаются лишнии header'ы включенными в файл.

как можно узнать какие файлы включают этот (какие файлы будут перекомпилироваться если я изменю файл х)? гугл не ответил :(

у меня linux.
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39327875
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grep "этот файл" *.d
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39327877
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

а почему *.d ?
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39327878
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivа почему *.d ?
Потому что зависимости собираются в файлы .d.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39327879
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovgrep "этот файл" *.d
хм.. а как их сгенерировать? я пытаюсь g++ -MMD 'some_file.cpp' -I"`pwd`" но он генерирует файл и пытается скомпилить.
как сгенерировать файлы для всего дерева?
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39327880
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_blackкак сгенерировать файлы для всего дерева?

Скомпилировать всё дерево с ключом -MMD.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39327885
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovСкомпилировать всё дерево с ключом -MMD.точно, спасибо.
в финале (using cmake) получилось что-то типа (запускать из директории сборки)
find -iname '*.d' -exec grep -nH 'file_name\.h' '{}' \;|sed -r 's/^.\/([a-zA-Z]+)\/([^\/]+)\/(.*)\.d:[0-9]+.*$/\3/' | sort | uniq

догадался, решил проверить, пока не ответили, запустил make -j50 чтобы нагенерить как можно больше таких файлов, думал успею остановить по cntr+c, вылетел firefox :)
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39327886
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не, вот так лушче, тут выражение понятнее.
find -iname '*.d' -exec grep -nH 'io_loop\.h' '{}' \; |sed -r 's#^./([^/]+)/([^/]+)/(.*)\.d:[0-9]+.*$#\3#' | sort | uniq
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39327887
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм.. чего-то я рано обрадовался :(
я таким же макаром могу просто изменить файл и make запустить и узнать какие файлы собираются перекомпилироваться. а как можно не запуская компиляцию?
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39327892
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_blackхм.. чего-то я рано обрадовался :(
я таким же макаром могу просто изменить файл и make запустить и узнать какие файлы собираются перекомпилироваться. а как можно не запуская компиляцию?
Наверное все-таки разумно будет перекомпилировать.
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39327895
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_blackа как можно не запуская компиляцию?
make --dry-run
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39327903
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, гы, и в результате получилось
make --dry-run | sed -rn 's#.*CMakeFiles/[^/]+/([^"]+cpp\.o)"$#\1#p' , *.d файлы не пригождаются :)
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39327904
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39327905
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_black*.d файлы не пригождаются :)
Да ну? Для корректной работы gmake они обычно и генерируются и включаются в makefile.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39328129
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

find -iname '*.d' не дал ничего. толко если я специально опцию -MMD включу при компиляции.
а как make узнает какие файлы надо перекомпилировать? внутри Makefile нет ничего, только правила.
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39328460
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_blackDimitry Sibiryakov,

find -iname '*.d' не дал ничего. толко если я специально опцию -MMD включу при компиляции.
а как make узнает какие файлы надо перекомпилировать? внутри Makefile нет ничего, только правила.
На, тут все подробно написано.
http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39330232
д0к
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
насколько я помню make это сам
делает для cpp файлов, но не делает для h.
проверяется зависимость *.o соответствующих им cpp

если о старше , компилируется соотвествующие ему cpp
если младше , то компиляця пропускается.
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39330425
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я когда то игрался с мейкфайлами, что бы вкюличить в зависимости и .h файлы,
но с полпинка у меня не получилось.

строчки мейкфайла, которые контролирует временные зависимости между o и cpp
выглядят так :
Код: plaintext
1.
2.
3.
4.
5.
6.
%.o: %.cpp
##      @rm $@
        $(CCPLUS) -g  -c  $(addprefix -I,$(source_dirs)) $<

parser:$(notdir $(patsubst %.cpp,%.o, $(wildcard $(search_wildcards))))
        $(CCPLINK) parser.o configurator.o msg.o excpt.o  $(INCLUDE)  $(SUBSYSTEMS.link) $(LIBS) -o parser



Если у когото получится впилить туда h файлы , тоже буду благодарен.
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39330455
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку у тебя объектники валятся прямо в тот же каталог, а списка объектных файлов
нигде нет, просто добавь -MMD к компиляции и "-include *.d" куда-нибудь в конец makefile.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
найти все файлы, включающие определенный файл
    #39330996
д0k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovПоскольку у тебя объектники валятся прямо в тот же каталог, а списка объектных файлов
нигде нет, просто добавь -MMD к компиляции и "-include *.d" куда-нибудь в конец makefile.


Спасибо , если вернусть в промышленный конвеерный кодинг на С++ , обязательно попробую.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / найти все файлы, включающие определенный файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]