![]() |
Как ускорить компиляцию проекта на С++ под UNIX ?
Есть проект на С++ состоящий из более чем 60 файлов. Компиляция занимает около минуты. Можно ли как-то это ускорить?
Я знаю что есть возможность компилировать только изменённые файлы, но так-как проект для университета, и я должен послать source code на автоматическую проверку, этот вариант не подходит. Компиляция командой g++ *.cpp занимает около минуты Компиляция командой make, с простеньким makefile, занимает примерно пол минуты. Может можно как-то усовершенствовать makefile. |
попробуй отключить оптимизацию g++ -O0 *.cpp
|
Если нормально написан makefile то будут компилироваться только измененные файлы. Но, как ты правильно сказал, это не поможет при первой компиляции.
Попробуй убрать зависимости, т.е. #include которые не нужны. Постарайся использовать forward declarations (class A; ) вместно них где можно. П.С. кстати в make есть флаг -j <x> где <x> - кол-во паралельных компиляций. Если комп сильный, то можно попробовать -j 2 или -j 3 |
Попробовал это g++ -O0 *.cpp - занимает точно столько-же времени
Хотя make запускается на сервере проверки, и добовлять флаги я не могу, я всё-таки проверил make с флагом -j <x> , но так тоже занимет столько-же как и без флага :confused: Цитата:
|
чем больше убереш тем лучше ;). из .h даже важнее чем из .cpp т.к. .h может компилироваться больше чем один раз (если он #include-ed в нескольких файлах)
а -j может и не помогает, зависит от компьютера |
И еще 500 раз проверить, скоолько раз файл included. На множественной компиляции заголовков можно потерять куда больше времени, чем на неправильной оптимизации, поэтому #ifndef проверить много-много раз. Если пара больших заголовочных файлов подключится больше одного раза, времени будет потеряно ОЧЕНЬ много.
|
| Часовой пояс GMT +4, время: 12:25. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.