Так что это может показаться немного сумасшедшим, но у меня была следующая идея:Идея C++ автоматическая система сборки единиц, будет ли она работать?
В C++ они вызывают сборку единства, когда вы помещаете весь свой код в один файл с помощью # include или просто копируете и вставляете. Это позволяет быстро собирать молнии.
Теперь для простоты предположим, что у нас есть только библиотека заголовка, и мы ограничиваемся только использованием классов (таким образом, у нас есть пространство с гараутомным именем). Теперь мне было интересно, как хорошо это сработает, если будет сделано автоматически. Сценарий/инструмент будет создан для предварительной обработки файлов .h; выбор включает и зависимости. Инструмент будет рекурсивно перемещаться каждый .h-файл и строить сопоставление зависимостей include. Затем он будет размещать эти зависимости в одном файле (main.cpp) с помощью #includes и компиляции.
Теперь я хочу получить мнение вашего парня об этой идее создания автоматического создания единства. Это умный делать? Будет ли это работать так, как я ожидаю?
Как долго будет строиться единое целое файл размером 150 МБ. Я слышал истории, когда сборки занимали целый день из-за базы кода. При объединении всего в один файл потребовалось несколько минут. – efel
Я не могу говорить за другие сборки - я могу для всего, что знаю. Кроме того, сколько памяти потребуется? Для данного примера, используя только LTO, было занято около 35 ГБ ОЗУ - и это было после того, как оно было улучшено в gcc 5.1 или 5.4 - до этого оно разбилось. – Anty