Лучшее, что я могу придумать с make
, - это опция -j
. Это говорит make
запускать как можно больше заданий параллельно:
make -j
Если вы хотите ограничить число одновременных заданий n , вы можете использовать:
make -j
n
Убедитесь, что зависимости правильные, поэтому make
не запускает задания, которые ему не нужны.
Еще одна вещь, которую необходимо учитывать, - это оптимизация, которую gcc
делает с переключателем -O
. Вы можете указать различные уровни оптимизации. Чем выше оптимизация, тем дольше время компиляции и компоновки. Проект, с которым я работаю, занимает 2 минуты, чтобы связать с -O3
, и полминуты с -O1
. Вы должны убедиться, что вы не оптимизируете больше, чем нужно. Вы можете собрать без оптимизации для сборок разработки и с оптимизацией для сборок развертывания.
Компиляция с отладочной информацией (gcc -g
), вероятно, увеличит размер вашего исполняемого файла и может повлиять на время сборки. Если вам это не нужно, попробуйте удалить его, чтобы увидеть, влияет ли оно на вас.
Тип связывания (статический или динамический) должен иметь значение. Насколько я понимаю, статическое связывание занимает больше времени (хотя я могу ошибаться здесь). Вы должны увидеть, влияет ли это на вашу сборку.