Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Замучался делать Rebuild...

Автор: fantom 21.4.2009, 15:11

Не знаю может вопрос не совсем по теме.. Просто не знаю чей баг qmake или компилятора. Короче суть в том, что есть довольно большой проект - естественно собирается он не за 5 секунд. Так вот при внесении изменений в любой ,h приходится полностью пересобирать проект чтобы изменения вошли в силу. Как этого можно избежать? А то задолбался пересобирать все уже..

А можно еще один больной вопрос? Как можно поставить точку останова в коде библиотеки, если функции в ней вызываются только по какому то событию или сигналу?

Автор: Danila_Bagrofff 21.4.2009, 15:16

А ты где это делаешь? в винде?

Компилятор точно не при чем. Он компилирует код в отдельные обж-файлы. В принципе можно отдельно компилировать обжи. а потом из них линковать саму прогу.
В коде библиотеки Qt? Или твоей?

Автор: fantom 21.4.2009, 15:24

Проект делается под Linux. Компилятор gcc 4.2.1. Дело в том что у меня часть кода находится в H файлах т.к. используются шаблонные классы, а с ними проблема с размещением кода в cpp файлах.

Точку останова надо поставить в своей библиотеке собранной с флагом Debug.

Автор: Litkevich Yuriy 21.4.2009, 15:40

Цитата(fantom @ 21.4.2009, 19:11) *
Как этого можно избежать?
только избежав включения этого заголовочника во множество файлов.

Автор: SABROG 21.4.2009, 15:44

Если проект большой, то в нем наверняка есть какие-то разделения типа gui и бизнес-логика, классы. Разбей программу на модули.
Создай основной .pro файл, пропиши в нем модули через include(), для модулей .pro файлы переименуй в .pri.
В основном .pro файле линкуй все .a/.lib файлы.

Также обрати внимание на это: http://wiki.qtcentre.org/index.php?title=Reducing_compilation_times
и на это http://c2.com/cgi-bin/wiki?RedundantIncludeGuards

Как этого можно избежать?


Собрать все .h файлы, которые редко меняются в один precompiled header, а именно этот оставить как есть.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)