Здравствуйте, Denwer, Вы писали:
D>Здравствуйте, SaZ, Вы писали:
D>Жалею что потратил пол дня на настройку всего этого говна. Теперь еще пол дня, что бы вернуть все обратно.
Пол дня чтобы сделать revert в репозитории? Это что же за система контроля версий такая медленная? Попробуйте git.
Не знаю, как у вас, но у меня и коллег всё прекрасно работает в связке MSVS + ReSharper при правильно добавленных в проект исходниках Qt. Если исходники не добавлять — то тогда решарпер видит только .h файлы. Но это не проблема Qt — так будет с любой библиотекой.
Здравствуйте, AlexGin, Вы писали:
AG>Для IDE Visual Studio, вроде как штатно (плагином QtVSAddin) используется QMake? Есть способ как-то прикрутить Cmake?
Штатно используются .sln файлы. Которые достаточно криво можно сгенерировать по .pro файлам.
CMake прикручивать никак не надо, всё работает из коробки со всеми популярными IDE под разные платформы.
Разве что пару лет назад было гемморно собирать андройд приложений из-под винды, но это не относится к Qt.
AG>Хорошо, я например, взял один из примеров, хочу его собрать на Qt 5.9 (желательно — в MSVC2015) — какие теперь мои действия? AG>Очень хотелось бы, обойтись без большого шаманского бубна...
Зачем? Хотя вот у меня в 2017 всё ок открылось и собралось.
AG>QTBUG-60059 AG>https://bugreports.qt.io/browse/QTBUG-60059
Это вообще к чему? Не нужно бета версии использовать для продакшена.
AG>Уточним — первоначально нашёл не я, просто в процессе гугления проблемы я увидел, что это баг уже известный. AG>Правда, непонятно, почему баг приоритета critical так и не смогли/захотели воспроизвести. Просто 'отмахнулись' от него
Потому что этот баг не вопспроизводится начиная с beta 4. Не говоря уже о релизе.
Здравствуйте, SaZ, Вы писали:
SaZ>Здравствуйте, Denwer, Вы писали:
D>>Здравствуйте, SaZ, Вы писали:
D>>Жалею что потратил пол дня на настройку всего этого говна. Теперь еще пол дня, что бы вернуть все обратно. SaZ>Пол дня чтобы сделать revert в репозитории? Это что же за система контроля версий такая медленная? Попробуйте git.
Для устанвоки пришлось ставить VS2015, плюс еще SDK для отладчика. Потом еще 2 гигой архив Qt скачать. Теперь опять вернуть придется Qt 5.8.
SaZ>Не знаю, как у вас, но у меня и коллег всё прекрасно работает в связке MSVS + ReSharper при правильно добавленных в проект исходниках Qt. Если исходники не добавлять — то тогда решарпер видит только .h файлы. Но это не проблема Qt — так будет с любой библиотекой.
Мы не используем IDE MSVS, работаем через сам QtCreator. Именно в нем и проблема. Даже создал новый тестовый проект, все тоже самое, не работает отладка сорцов Qt.
Здравствуйте, Denwer, Вы писали:
D>Для устанвоки пришлось ставить VS2015, плюс еще SDK для отладчика. Потом еще 2 гигой архив Qt скачать. Теперь опять вернуть придется Qt 5.8.
Так а в чём проблема вернуться на другую версию? Не обязательно же uninstall делать
D>Мы не используем IDE MSVS, работаем через сам QtCreator. Именно в нем и проблема. Даже создал новый тестовый проект, все тоже самое, не работает отладка сорцов Qt.
Тут, увы, не подскажу ничего. В официальных доках написано, что достаточно просто указать отладчику на папку с исходниками кутэ.
Здравствуйте, SaZ, Вы писали:
D>>Мы не используем IDE MSVS, работаем через сам QtCreator. Именно в нем и проблема. Даже создал новый тестовый проект, все тоже самое, не работает отладка сорцов Qt. SaZ>Тут, увы, не подскажу ничего. В официальных доках написано, что достаточно просто указать отладчику на папку с исходниками кутэ.
Что то напортачили в дистрибутиве похоже:
*** WARNING: Unable to verify checksum for C:\Qt\Qt5.9.0\5.9\msvc2015\bin\Qt5Widgetsd.dll
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Qt\Qt5.9.0\5.9\msvc2015\bin\Qt5Widgetsd.dll -
Здравствуйте, Denwer, Вы писали:
D>Что то напортачили в дистрибутиве похоже:
D> *** WARNING: Unable to verify checksum for C:\Qt\Qt5.9.0\5.9\msvc2015\bin\Qt5Widgetsd.dll D> *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Qt\Qt5.9.0\5.9\msvc2015\bin\Qt5Widgetsd.dll —
Оказалось проблема была в оффлайн установщике, переставил через онлайн и все заработало. Неужели не могли проверить что они там набилдили.
Здравствуйте, Denwer, Вы писали:
D>Оказалось проблема была в оффлайн установщике, переставил через онлайн и все заработало. Неужели не могли проверить что они там набилдили.
Вы crc проверяли? Может просто установщик криво скачался?
Здравствуйте, SaZ, Вы писали:
SaZ>Здравствуйте, Denwer, Вы писали:
D>>Оказалось проблема была в оффлайн установщике, переставил через онлайн и все заработало. Неужели не могли проверить что они там набилдили.
SaZ>Вы crc проверяли? Может просто установщик криво скачался?
В нем вообще нет PDB файлов просто. Они не битые, они отсутствуют. Да и не могут они там быть при общем архиве в 2.2 гига.
Здравствуйте, Denwer, Вы писали:
D>В нем вообще нет PDB файлов просто. Они не битые, они отсутствуют. Да и не могут они там быть при общем архиве в 2.2 гига.
Они неплохо пакуются. PDB будут в 5.9.1, видел багрепорт.
Здравствуйте, SaZ, Вы писали:
SaZ>Зачем? Хотя вот у меня в 2017 всё ок открылось и собралось.
Шла речь об MSVC2015 — тоже вроде не старый продукт — но не собирается
Проверено — на olline инсталляторе и на offline инсталляторе. Проблема есть!
Првёл эксперименты и дома, и на работе: факт, что QTBUG-60059 никто не правил.
SaZ>Это вообще к чему? Не нужно бета версии использовать для продакшена.
Скачивалось всё из официальных источников, скачивалось не однократно.
SaZ>Потому что этот баг не вопспроизводится начиная с beta 4. Не говоря уже о релизе.
Излагаю все шаги по воспроизведению ситуации подробно:
1) На компьютере с Windows 7/64 Ultimate (SP1) установлена MSVS2015 CE (Update 3), ранее, Qt 5.8.0 работала с этой системой — как часы.
Совместно с MSVS2015 установлен также Qt VS Addin: qt-vs-tools-msvc2015-2.1.1.vsix.
2) Через online или offline инсталлятор ставим Qt 5.9.0, инсталляция проходит без каких-либо проблем.
3) Настраиваем студию — через меню QtVSTools/Qt Options открываем окно настройки Qt Options и выбираем путь к qmake (это также проблем не вызывает).
4) Открываем файл проекта *.pro (через меню QtVSTools/Open Qt Project File (.pro) — имеем ошибку!!!
P.S. Ждём или 5.9.1 или 5.10, так как эту версию (без хорошего бубна) внедрять не вижу смысла.
Правда, генерит файл конфигурации CMake (CMakeLists.txt) она для Qt4, для перехода на Qt5 его ещё надо править руками.
Теперь, что касается самой CMake: утилита неплохая.
Одно смущает — много ручной работы по переводу моих проектов из *.pro формата в CMakeLists.txt.
Однако, по-существу, давай не переводить тему на Cmake
Вот есть наработки (проекты), есть инструмент: Qt — инструмент хороший и мощный, в основном — удобный, но:
в версии 5.8.0 — можно взять все наши разработки и проекты, а вот для версии 5.9.0 — нужны пляски, бубен
(как бы красиво этот бубен не назывлся CMake или QBS) в общем — дополнительные трудозатраты.
Причём, трудозатраты НЕ производительные — девелопер просто должен биться с ветрянными мельницами
Здравствуйте, AlexGin, Вы писали:
AG>Почитал я документацию по CMake, посмотрел на утилиту-преобразователь https://sourceforge.net/projects/qmake2cmake AG>Я даже скомпилировал её и запустил.
Лишнее. Утилиты не нужны.
AG>Правда, генерит файл конфигурации CMake (CMakeLists.txt) она для Qt4, для перехода на Qt5 его ещё надо править руками.
Я понимаю, что вы привыкли, когда IDE за вас генерирует правила сборки, но в больших проектах на С++ такое очень редко встречается.
AG>Теперь, что касается самой CMake: утилита неплохая.
Это система сборки. Вернее даже генератор систем сборки.
AG>Одно смущает — много ручной работы по переводу моих проектов из *.pro формата в CMakeLists.txt.
Наймите билд инженера, это как раз их работа. Странно, что в таком случае вас не смущает необходимость вообще что-то программировать.
Когда вам надо добавить third-party в свой проект, вам в любом случае надо или освоить систему сборки или самому сделать её под свою IDE. Так, чисто для развлечения, попробуйте собрать solution, чтобы встроить компиляцию OpenSSL в свой проект.
Лично у меня для своих проектов есть шаблоны CMake файлов (написанные за пару дней), к которым, в большинстве случаев, достаточно просто подложить исходники и всё будет работать с любой IDE (MSVS, XCode, QtCreator).
AG>Однако, по-существу, давай не переводить тему на Cmake AG>Вот есть наработки (проекты), есть инструмент: Qt — инструмент хороший и мощный, в основном — удобный, но: AG>в версии 5.8.0 — можно взять все наши разработки и проекты, а вот для версии 5.9.0 — нужны пляски, бубен AG>(как бы красиво этот бубен не назывлся CMake или QBS) в общем — дополнительные трудозатраты.
Для вас это бубен, для нормальных проектов — мощный инструмент, который позволяет сделать удобной разработку для различных команд под целый зоопарк платформ. Если для разработки используется более чем одна IDE, то либо начинаются пляски с бубном, либо берётся CMake.
В своё время мы поддерживали сборку отдельно через make / xcodeproj / vs-solution для World of Tanks Blitz. Потом перевели движок и Qt тулзы на CMake. Потом всю игру.
А там целая коллекция всяких thirdparty / платформ и т.п. И всё под все платформы должно собираться. И работать с любыми IDE, чтобы программистам было удобно.
AG>Причём, трудозатраты НЕ производительные — девелопер просто должен биться с ветрянными мельницами
Биться ни с какими мельницами не надо. Достаточно уметь читать документацию.
Девелопер должен обладать рядом навыков и знаний. Нужно понимать, как осуществляется компиляция и линковка. А системы сборки призваны автоматизировать этот процесс.
P.S. складывается впечатление, что вы кроме MSVS ничего не пробовали. А это лишь небольшая часть мира программирования.
Главный навык, который отличает программиста от кодера-обезьяны, это умение выбирать эффективный инструмент для решения задач. Конвертация .pro в .vsproj — явно костыль, который сработает только в базовых случаях.
Резюмирую: хотите использовать Visual Studio — используйте её систему сборки.
Здравствуйте, SaZ, Вы писали:
SaZ>Я понимаю, что вы привыкли, когда IDE за вас генерирует правила сборки, но в больших проектах на С++ такое очень редко встречается.
Правила сборки пишу я, IDE просто удобный инструмент для этого.
У нас были проекты под пятьдесят подпроектов с союшене MSVS (C++/MFC) и все правила сборки, линковки, зависимостей — мы прописывали
в удобной среде студии. Периодически переходя от одной версии студии к другой.
AG>Теперь, что касается самой CMake: утилита неплохая. SaZ>Это система сборки. Вернее даже генератор систем сборки.
Хорошо, назовём это "генератор систем сборки", но в большинстве случаев эта сущность играет роль дополнения (костылика). Так?
Когда из коробки система что-то не_может/не_умеет вот тут нам и удобна CMake.
Ты же сам чуть выше сообщал — типа "дополнительных утилит не нужно!"...
А чем тот же CMake отличается от чего-то другого?
SaZ>Так, чисто для развлечения, попробуйте собрать solution, чтобы встроить компиляцию OpenSSL в свой проект.
Я работал с OpenCV (и тоже использовал, эпизодически, CMake). Я в курсе, что CMake — инструмент для открытых кроссплатформенных проектов.
Вопрос в другом — почему мы должны применять этот инструмент, имея отличный штатный инструментарий в Qt?
Ну доведут разработчики Qt свою новую версию, и всё будет отлично! В чём же вопрос?
SaZ>Лично у меня для своих проектов есть шаблоны CMake файлов (написанные за пару дней), к которым, в большинстве случаев, достаточно просто подложить исходники и всё будет работать с любой IDE (MSVS, XCode, QtCreator).
Молодец!
Только вот вопрос — зачем тратить пару дней, когда (ИМХО) всё это должно было бы работать из-коробки?
Здесь, конечно, есть поле для творчества: можно сделать свои скрипты (на том же Python, например), можно сделать свои утилиты (с GUI или командной строки), на том же Qt, если тебе эта технология знакомее и ближе, только вот зачем?
Просто для того, чтобы чем-то компенсировать издержки инструментария...
SaZ>Для вас это бубен, для нормальных проектов — ...
Тот же бубен, пусть даже мощный. Просто такая вот терминология.
SaZ>... инструмент, который позволяет сделать удобной разработку для различных команд под целый зоопарк платформ.
СТОП! А для чего же тогда Qt?
Разве не кроссплатформенность преподносится, как основная фишка данного продукта?
SaZ>Если для разработки используется более чем одна IDE, то либо начинаются пляски с бубном, либо берётся CMake.
Я бы сказал точнее: начинаются пляски с бубном под названием CMake.
SaZ>В своё время мы поддерживали сборку отдельно через make...
Молодцы, проявили смекалку, смогли выйти из сложной ситуации!
SaZ>Девелопер должен обладать рядом навыков и знаний. Нужно понимать, как осуществляется компиляция и линковка.
Прекрасно, но ещё надо знать синтаксис управляющих команд для файла CMake. А надо ли этим засорять свой мозг?
Так, например, владение языковым базисом C/C++ мне представляется, как конвертируемый навык.
Перечислю системы, с котрыми я работал, используя данный базис:
1) AVOCET — это ANSI C compiler для встроенных микропроцессорных систем;
2) Borland (в двух вариантах) Borland C++ builder и древний Borland 3.1;
3) Microsoft Visual Studio (начиная от 4-ки) и до 2015-й. Правда до новой 2017-й — пока не дошли руки. Не скрываю, это Лидер среди IDE;
4) QtCreator — удобная тулза, нередко пользуюсь этой IDE, особенно в Linux (Debian);
5) Watcom C — было и такое, ещё во времена DOS-а.
То есть — это навыки и знания, востребованные каждый день.
Hint — в отличие от синтаксиса CMake, который потребуется максимум один раз в год...
P.S. Я не указал здесь, что также работал с Eclipse (для Java), PyCharm (для Python). Но это уже за пределами вселенной C++
Здравствуйте, AlexGin, Вы писали:
AG>Здравствуйте, SaZ, Вы писали:
AG>У нас были проекты под пятьдесят подпроектов с союшене MSVS (C++/MFC) и все правила сборки, линковки, зависимостей — мы прописывали AG>в удобной среде студии. Периодически переходя от одной версии студии к другой.
Ну так я и говорю — проект одной платформы в одной IDE.
AG>Когда из коробки система что-то не_может/не_умеет вот тут нам и удобна CMake.
Вы не поняли главного. Ну да ладно.
AG>Вопрос в другом — почему мы должны применять этот инструмент, имея отличный штатный инструментарий в Qt?
С отличным штатным инструментом вы не справились. Скорее всего потому, что конвертация из .pro в .sln писалась энтузиастами не для продакшена.
AG>Здесь, конечно, есть поле для творчества: можно сделать свои скрипты (на том же Python, например), можно сделать свои утилиты (с GUI или командной строки), на том же Qt, если тебе эта технология знакомее и ближе, только вот зачем? AG>Просто для того, чтобы чем-то компенсировать издержки инструментария...
Чтобы иметь гибкость при выборе инструментария.
SaZ>>... инструмент, который позволяет сделать удобной разработку для различных команд под целый зоопарк платформ. AG>СТОП! А для чего же тогда Qt?
Qt — это фрэймворк. CMake/qmake/qbs — системы сборки. Вы не понимаете разницы?
SaZ>>Если для разработки используется более чем одна IDE, то либо начинаются пляски с бубном, либо берётся CMake. AG>Я бы сказал точнее: начинаются пляски с бубном под названием CMake.
Так нет альтернатив
SaZ>>Девелопер должен обладать рядом навыков и знаний. Нужно понимать, как осуществляется компиляция и линковка. AG>Прекрасно, но ещё надо знать синтаксис управляющих команд для файла CMake. А надо ли этим засорять свой мозг?
Ну С++ вы же изучаете?
AG>Так, например, владение языковым базисом C/C++ мне представляется, как конвертируемый навык. AG>Перечислю системы, с котрыми я работал, используя данный базис: AG>1) AVOCET — это ANSI C compiler для встроенных микропроцессорных систем; AG>... AG>P.S. Я не указал здесь, что также работал с Eclipse (для Java), PyCharm (для Python). Но это уже за пределами вселенной C++
Да ладно, я изучал ваше резюме год назад, только в собеседовании тогда не поучаствовал.
Думаю надо закругляться с этим флудом. Мы немного в разных плоскостях мыслим и сложность у проектов у меня с вами отличается. Тут бесполезно что-то объяснять, пока вы сами не столкнётесь с разработкой enterprise систем.
Здравствуйте, SaZ, Вы писали:
... SaZ>Да ладно, я изучал ваше резюме год назад, только в собеседовании тогда не поучаствовал.
В любом случае, мне приятно встретить здесь товарища из Минска!
Кстати, я тогда занимался поиском работы, нашёл и уже более года работаю на текущем рабочем месте
SaZ>Думаю надо закругляться с этим флудом
+100500
Здравствуйте, SaZ, Вы писали:
SaZ>Опять же, .pro это уже устаревающая технология. Qt активно пилит QBS.
Над QBS сейчас вроде пара человек постоянно работает, проект как-то оживился, хотя пару лет назад уже казалось, что они его совсем забросили.
В последнем релизе разработчики QBS говорили, что QBS будет основной системой сборки в Qt 6.
Здравствуйте, AlexGin, Вы писали:
SaZ>>Потому что этот баг не вопспроизводится начиная с beta 4. Не говоря уже о релизе.
AG>Излагаю все шаги по воспроизведению ситуации подробно: AG>1) На компьютере с Windows 7/64 Ultimate (SP1) установлена MSVS2015 CE (Update 3), ранее, Qt 5.8.0 работала с этой системой — как часы. AG>Совместно с MSVS2015 установлен также Qt VS Addin: qt-vs-tools-msvc2015-2.1.1.vsix. AG>2) Через online или offline инсталлятор ставим Qt 5.9.0, инсталляция проходит без каких-либо проблем. AG>3) Настраиваем студию — через меню QtVSTools/Qt Options открываем окно настройки Qt Options и выбираем путь к qmake (это также проблем не вызывает). AG>4) Открываем файл проекта *.pro (через меню QtVSTools/Open Qt Project File (.pro) — имеем ошибку!!!
Подтверждаю — этот баг существует. Кто виноват — Qt VS Addin или новая версия Qt мнения не имею.
P.S.
разговоры о том что все надо делать не так, не отменяют наличие бага.
Здравствуйте, Serg27, Вы писали:
S>Подтверждаю — этот баг существует. Кто виноват — Qt VS Addin или новая версия Qt мнения не имею. S>P.S. S>разговоры о том что все надо делать не так, не отменяют наличие бага.
Ну так это баг в аддоне, а не в фреймворке. Вот бета аддона для 2017 вижлы (версия 2.1) содержит не полный список модулей для Qt. Я скачал исходники и практически не зная шарпов всё поправил за 40 минут (включая установку C#). Будет свободное время — оформлю код нормально и сделаю пул реквест.
Да, баг это плохо, но мне сложно представить реальный сценарий, когда он бы очень сильно застопорил всю работу. В нормальных проектах заранее продумана система сборки и никто не будет доверять конвертацию .pro в .sln каким-то решениям. Билд система обязательно должна быть продумана для любого софта. Конечно если вы не пишите какую-то home made поделку.
Здравствуйте, SaZ, Вы писали:
SaZ>Конечно если вы не пишите какую-то home made поделку.
Я не понимаю вашей спеси. Да, я пишу "home made" поделку. И что? Мне удавиться?
P.S.
Баг обнаружил, когда захотел собрать стандартный пример из поставки в VS2015. Там есть только .pro файл.