Время компиляции C++, вероятно, отличается от любого другого языка, который я когда-либо использовал.
Одна вещь, которая может существенно повлиять на то, какие заголовки вы включаете. Хотя ваш код может содержать только 800 строк, если некоторые из них равны #include
, компилятор может легко смотреть на тысячи строк (только для справки, #include <windows.h>
, сам по себе, как правило, означает, что компилятор будет смотреть более 10 000 линии).
Некоторые из нас в чат-комнате C++ недавно провели несколько тестов на особенно неприятную часть кода, в которой много рекурсивных шаблонов. Несмотря на то, что это всего лишь 30 строк кода, в зависимости от параметров, которые вы устанавливаете, довольно легко получить время компиляции часа или более - и с большинством компиляторов (включая VC++ 10 и 11/2012) довольно легко прямо сбой компилятора.
Если код имеет мало или ничего в виде заголовков и/или шаблонов (особенно таких, как рекурсивные шаблоны), то для слияния 7.5 секунд кажется довольно чрезмерным. Просто для сравнения, я сделал быстрый тест, составив программу, в которой я лежал, близкий к тому же размеру (926 строк). Это заняло 0,3 секунды. Моя машина - это что-то вроде 5 или 6 лет, поэтому ее скорость даже не закрывает. В то же время я должен добавить, что для компиляции небольшого количества кода скорость процессора, вероятно, не является основным определяющим фактором. Я бы ожидал, что SSD сделает гораздо больше различий, чем более быстрый процессор.
Возможно, это связано с только заголовками библиотек (например, boost :: asio). В этом случае вы должны использовать предварительно скомпилированные заголовки. – Mohammad
В чем проблема? Когда у вас 8000 строк кода, требуется ли 7,5 секунд для сборки? –
Да, что вы переживаете, это нормально. –