Создание нескольких предварительно скомпилированных файлов заголовков с помощью GNU make

Я использую gcc (работающий как g ++ ) и GNU make. Я использую gcc для предварительной компиляции файла заголовка precompiled.h , создавая precompiled.h.gch ; следующая строка в Makefile делает это:

# MYCCFLAGS is a list of command-line parameters, e.g. -g -O2 -DNDEBUG
precompiled.h.gch: precompiled.h
    g++ $(MYCCFLAGS) -c $< -o $@

Все было хорошо, пока мне не пришлось запустить g ++ с другими параметрами командной строки. В этом случае, даже если precompiled.h.gch существует, его нельзя использовать, и компиляция будет намного медленнее. В документации gcc я прочитал, что для решения этой ситуации, мне нужно создать каталог с именем precompiled.h.gch и поместить предварительно скомпилированные файлы заголовков, один файл для каждого набора параметров командной строки g ++ .

Итак, теперь мне интересно, как мне изменить свой Makefile, чтобы указать g ++ для создания gch-файлы таким образом. Может быть, я могу запустить g ++ , чтобы проверить, может ли он использовать какой-либо существующий файл в каталоге precompiled.h.gch , а если нет, сгенерируйте новый предварительно скомпилированный заголовок с уникальным именем файла.

Поддерживает ли gcc такой тест?

Может быть, я смогу реализовать то, что хочу, другим способом?

8
задан anatolyg 19 December 2010 в 11:38
поделиться