Re: Быстрая компиляция через gcc
От: watchmaker  
Дата: 25.12.21 15:30
Оценка: +1
Здравствуйте, maks1180, Вы писали:


M>то в моём случаи это в 5 раз быстрее

Чем больше лишних ненужных библиотек в заголовочных файлах используется, тем больше можно получить ускорения.

Правда надо сказать, что часто это не столько unity build сам по себе ускоряет компиляцию, а злоупотребление header-only библиотеками сильно её замедляет. А unity build лишь снижает их вред.


M>Может у gcc есть такая опция, что-бы не создавать main.cpp. Т.е. что-бы он компилировал кучу cpp файлов как один большой ?

Зачем такая опция в компиляторе, если проще сделать это в системе сборки? Всё равно там уже хранятся зависимости между файлами, и там же отслеживаются изменения в графе сборки, когда что-то поменялось и нужно составить список целей, которые надо пересобрать.

M>Таким способом размер бинарника иногда отличается в большую или меньшую сторону, по сравнению с обычной компиляцией. Не пойму пока почему так.

Так посмотри что там отличается :)
Например, эффекты unity build, влияющие на размер:
1. склеивание internal linkage функций/констант, которые почему-то имеют такой linkage, но используются в нескольких местах;
2. агрессивное встраивание, подобно lto;
3. невозможность удаления недостижимого кода/данных на уровне объектных файлов (если не используется -ffunction-sections и подобное)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.