как ускорить процесс сборки проекта? |
Здравствуйте, гость ( Вход | Регистрация )
как ускорить процесс сборки проекта? |
zloyGamer |
3.4.2010, 14:14
Сообщение
#1
|
Студент Группа: Участник Сообщений: 22 Регистрация: 18.7.2009 Пользователь №: 917 Спасибо сказали: 0 раз(а) Репутация: 0 |
уже все стандартные либы(типа #include <QtNetwork>, #include <QtGui> и также его классы: #include <QtGui/QDialog>, #include <QtGui/QWidget> и т.д.) включил в PCH
и в cpp файлах вместо #include <QtGui> и т.п. просто включаю PCH.h а также заметил если все cpp файлы прописывать не в pro файле а включить их в отдельном файле (т.е. вместо SOURCES += main.cpp file1.cpp file2.cpp file3.cpp записать SOURCES += main.cpp all_cpp.cpp где в all_cpp.cpp будет: #include "file1.cpp" #include "file2.cpp" #include "file3.cpp") то скорость сборки немного увеличивается!. подскажите может есть ещё какие нить способы ускорить процесс сбоки/пересборки проекта? чуть не забыл, все это про mingw32 v3.81 |
|
|
kwisp |
3.4.2010, 14:47
Сообщение
#2
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
zloyGamer,
очень интересный вопрос. я пробовал заводить дефайн-ключ сборки MAKE__WITH__INLINE, а в заголовочных файлах с помощью директив ifndef endif else оборачивал инлайн функции, т.е. получалось что если мне надо быстро пересобрать проект с изменением то, я правил срр файл и при пересборке пересобирался только один объектник. при сборке релиза я включал MAKE__WITH__INLINE и пересобирал весь проект с инлайнами. дело в том что при пересборке много времени отнимает изменение в заголовочнолм файле т.к. будт персобираться все объектники куда он включен, изменения же в файле реализации влекут за собой персборку только одного объектника если конечно же ты по глупости не включил срр файл в другой срр файл. колнечно все это бездейственно при изменении архитекруры программы -- добавление нового метода, или члена класса, но для этого в принципе и отводится львиная доля времени на проектирование а не на кодирование. признаюсь по данному вопросу даже не гуглил. т.к. пока время терпит сборку моего проекта. |
|
|
zloyGamer |
3.4.2010, 14:56
Сообщение
#3
|
Студент Группа: Участник Сообщений: 22 Регистрация: 18.7.2009 Пользователь №: 917 Спасибо сказали: 0 раз(а) Репутация: 0 |
отлично, но эт тока для инлайн функций а так по умолчнию итак пересобирается тока тот cppшный файл в котором ты и вносил изменения
спасибо за вариант |
|
|
Litkevich Yuriy |
3.4.2010, 15:22
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
и в cpp файлах вместо #include <QtGui> во-первых, не включай модулями, а включай только нужные классы.во-вторых, избегай использования не-указателей в заголовочниках, тогда в них можно будет не включать другие заголовочники, а использовать предварительное объявление. Ну а в целом С/С++ всегда компилируется медленно по сравнению с паскалеподобными языками. |
|
|
kwisp |
3.4.2010, 15:53
Сообщение
#5
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
я бы сказал главное ускорение(сокращение времени потраченного на сборку) это грамотное проектирование классов.
один раз можно и подождать когда релиз собираешь. я вот в генте своей каждый день почти наблюдаю по несколько сборок и ничего -- время терпит. |
|
|
zloyGamer |
3.4.2010, 17:43
Сообщение
#6
|
Студент Группа: Участник Сообщений: 22 Регистрация: 18.7.2009 Пользователь №: 917 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата во-первых, не включай модулями, а включай только нужные классы. в PCH я включаю и модули и их классы т.е. все вместе. а уже в самих срр включаю этот один PCH где уже набрано все что надо.. Цитата Ну а в целом С/С++ всегда компилируется медленно по сравнению с паскалеподобными языками. зато паскаль не на стока гибок как с++, да и читается тяжело, один оператор смерти := чего тока стоит )), зато он оч. хорошо подходит для введения в программирование/школьникам/студентам, но а у меня насчет него особое мнение .. ... по несколько сборок и ничего -- время терпит. вот, вот, время терпит и уходит.., над срочно что то придумать |
|
|
SABROG |
3.4.2010, 19:50
Сообщение
#7
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
уже все стандартные либы(типа #include <QtNetwork>, #include <QtGui> и также его классы: #include <QtGui/QDialog>, #include <QtGui/QWidget> и т.д.) включил в PCH У Qt уже есть PCH. то скорость сборки немного увеличивается!. Только 1 единственный раз - первый. Затем ты меняешь один из этих файлов и вместо перекомпиляции его одного у тебя пересобираются все. Еще 2 темы на моей памяти где обсуждалось время компиляции: http://www.prog.org.ru/topic_9891_0.html http://www.prog.org.ru/topic_12638_15.html |
|
|
Текстовая версия | Сейчас: 19.4.2024, 6:06 |