Название: jom постоянно запускает qmake перед сборкой проекта Отправлено: xokc от Сентябрь 11, 2016, 22:57 После миграции на очередную версию QtCreator получаю странную на мой взгляд ситуацию со сборкой проекта, состоящего из нескольких других проектов (TEMPLATE = subdirs). Даже если код всех проектов вообще не менялся, QtCreator (4.1.0, Windows 10 x64, Qt 5.7.0) каждый раз запускает jom/nmake для генерации makefiles для каждого из вложенных проектов, что занимает при достаточно заметное время, особенно на фоне практически мгновенной пересборки изменившихся файлов в дочерних проектах (если таковые имеются). При этом, собственно, дальше всё идет штатно - пересобираются только те проекты, в которых были изменения. Кроме того, есть некие признаки того, что это его "осознанное" поведение :). Так, в начале сборки он даёт предупреждение:
"Каталог сборки должен быть на том же уровне, что и каталог исходников". и в окне "Проекты" (см. рисунок) тоже странное предупреждение. Папку сборки чистил, пересобирал - не помогает. Как это дело победить? Название: Re: jom постоянно запускает qmake перед сборкой проекта Отправлено: ViTech от Сентябрь 12, 2016, 10:27 Название: Re: jom постоянно запускает qmake перед сборкой проекта Отправлено: xokc от Сентябрь 12, 2016, 12:05 Переход на Qbs - слишком радикально. Кроме того, такое ощущение, что развитие Qbs за последние годы несколько тормознулось. Да и там проблем проблем достаточно - ту же локализацию с lupdate так и не прикрутили.
И на самом деле, я, похоже, понял в чем именно проблема: у меня папка проекта исторически на диске D была, после приобретения быстрого SSD для системного диска решил перенести исходники и каталог сборки на него, для чего на D сделал символические ссылки для них. Теперь если открывать проект из реальной папки на диске C, то всё работает ожидаемо, а если из ссылочной на диске D - то так, как описано в первом моём сообщении. При этом предупреждение "Каталог сборки должен быть на том же уровне, что и каталог исходников" так и светится при каждой пересборке, но жить не мешает. Кто-нибудь знает, зачем оно такое пишет? Название: Re: jom постоянно запускает qmake перед сборкой проекта Отправлено: ssoft от Сентябрь 12, 2016, 14:09 Сталкивался с таким же поведением, при переходе на более свежую версию QtCreator (давно уже). Нашел bugfix, который регламентировал специально такое поведение, но причины понять не смог.
Если не копаться в исходниках креатора, то лечится только убиранием warning: "Каталог сборки должен быть на том же уровне, что и каталог исходников". Это значит, что сборка должна происходить в каталоге внутри проекта, где находится pro файл. Фактически это предупреждение возникает, когда qmake не может сформировать относительные пути и вынужден использовать полные. Лучше всего использовать каталоги сборки там, где предлагает сам креатор. При использовании относительных путей в винде есть подводные камни, связанные с длиной относительного пути, но встречается редко в проектах с глубокой степенью вложенности. Надеюсь, что не ваш случай, иначе придется мириться с постоянным запуском qmake. Название: Re: jom постоянно запускает qmake перед сборкой проекта Отправлено: xokc от Сентябрь 12, 2016, 20:17 лечится только убиранием warning: "Каталог сборки должен быть на том же уровне, что и каталог исходников". Ну у меня вроде вылечилось и без убирания.Лучше всего использовать каталоги сборки там, где предлагает сам креатор. Этак мне он своими сборками весь диск загадит :) |