Есть ли возможность (скорее всего, с помощью самого gcc / g ++?) Определить, какие строки кода всех файлов, включенных в одну компиляцию, фактически используются?
Я использую много сторонних включений и хотел бы разделить их на фактически используемый код для ускорения компиляции.
Может быть, g ++ может вывести это, используя несколько вариантов?
Лучший совет, который я могу предложить, — разбить огромные включаемые файлы на более мелкие части. Это позволяет разработчикам включать только файлы, необходимые для разрешения символов.
Мой любимый пример windows.h
, Мега-включаемый файл объявляет весь Windows API, нужен он вам или нет. Если вам нужны только API-интерфейсы для обработки файлов, вы также получите API-интерфейсы для диалоговых окон.
В некоторых магазинах, таких как монстр, есть файлы, потому что они должны включать только один файл в свои источники. Одним из недостатков является то, что каждый исходный файл теперь зависит от мега включаемого файла. Если я изменю один из включаемых файлов, вся система будет перестроена вместо нескольких модулей, которые зависят от файла заголовка, который я изменил.
В моих проектах за один раз компилируется только пара файлов; обычно меньше 5. Это делает среднее время обработки (изменение, а затем сборку) очень быстрым. Вся система перестраивается в одночасье сервером или разработчиками. Нет необходимости перестраивать исходные файлы, которые не изменились.
Поэтому разделите свои модули, чтобы не перестраивать свою систему каждый раз.
Других решений пока нет …