crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> как ускорить процесс сборки проекта?
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


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9666
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(zloyGamer @ 3.4.2010, 18:14) *
и в 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 где уже набрано все что надо..


Цитата
Ну а в целом С/С++ всегда компилируется медленно по сравнению с паскалеподобными языками.

зато паскаль не на стока гибок как с++, да и читается тяжело, один оператор смерти := чего тока стоит )), зато он оч. хорошо подходит для введения в программирование/школьникам/студентам, но а у меня насчет него особое мнение ..


Цитата(kwisp @ 3.4.2010, 15:53) *
... по несколько сборок и ничего -- время терпит.

вот, вот, время терпит и уходит.., над срочно что то придумать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 3.4.2010, 19:50
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(zloyGamer @ 3.4.2010, 15:14) *
уже все стандартные либы(типа #include <QtNetwork>, #include <QtGui> и также его классы: #include <QtGui/QDialog>, #include <QtGui/QWidget> и т.д.) включил в PCH

У Qt уже есть PCH.

Цитата(zloyGamer @ 3.4.2010, 15:14) *
то скорость сборки немного увеличивается!.

Только 1 единственный раз - первый. Затем ты меняешь один из этих файлов и вместо перекомпиляции его одного у тебя пересобираются все.

Еще 2 темы на моей памяти где обсуждалось время компиляции:
http://www.prog.org.ru/topic_9891_0.html
http://www.prog.org.ru/topic_12638_15.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.4.2021, 2:24