[devel] gcc-3.4 precompiled headers
Mikhail Yakshin
=?iso-8859-1?q?greycat_=CE=C1_altlinux=2Eorg?=
Пт Мар 18 21:06:02 MSK 2005
Andrey Rahmatullin пишет:
> On Fri, Mar 18, 2005 at 06:18:11PM +0200, Serge Pavlovsky wrote:
>
>>>>>Когда я хочу скомпилить чужую с++-софтину, я беру и компилю ее. При этом
>>>>>в ее исходниках уже вписаны #include <iostream.h> и т.д.
>>>>
>>>>это еще почему ?
>>>
>>>Ну аффтар написал так.
>>
>>вот и ответ на ваш вопрос
>
> Ну так раз нет софта, поддерживающего PCH, и нет простого способа добавить
> эту поддержку без патченья исходников, _ЗАЧЕМ_ они в стандартной поставке g++???
Пожалуйста, почитайте соответствующую страничку info, которая идет с
gcc. Там все популярно и доступно объяснено, что, как, зачем и почему. Я
вот, например, пользуюсь, получаю примерно 6-7 кратный прирост в
скорости при сборке KDE/Qt-программ.
Если вкратце - то для любой прилично написанной программы имеет смысл
сделать что-то вроде:
cat *.cpp *.h | grep '#include' | sort -u >all.h
Скомпилировать полученный all.h в PCH:
g++ $(опции) all.h
и затем подключать этот all.h при сборке всех файлов:
g++ -include all.h $(опции) -c somefile.cpp -o somefile.o
Что-то в этом роде.
В стандартной поставке прекомплированные stdc++.h играют роль именно
таких вот файлов all.h, скомплириованных, правда, только с
libstdc++'ными заголовками. Но для многих программ на C++ это тоже может
дать неплохой прирост в производительности сборки.
--
WBR, Mikhail Yakshin AKA GreyCat
ALT Linux [http://www.altlinux.ru] [xmpp:greycat на altlinux.org]
Подробная информация о списке рассылки Devel