Qt installer framework не удалось загрузить удаленное дерево

Обновлено: 07.07.2024

Я пробую собрать Qt Installer Framework 2.0.1. Просто собрать, без изменения исходных кодов.
Я установил Qt 5.5.0 с Mingw 4.9.2, добавил переменные в Path, загрузил проект. Сборка прошла успешно.
Потом я скачал исходники, сделал статичную сборку Qt по мануалу, установил требующиеся библиотеки (uitools, winextras, qml) отсюда.

При попытке статичной сборке появляется ошибка:


windres -i ..\..\..\qt-installer-orig\src\sdk\installerbase.rc -o debug\installerbase_res.o --include-dir=./../../../qt-installer-orig/src/sdk -DUNICODE -DQT_NO_CAST_FROM_ASCII -DQT_USE_QSTRINGBUILDER -D_GIT_SHA1_= -DIFW_VERSION_STR=2.0.1 -DIFW_VERSION=0x020001 -DIFW_REPOSITORY_FORMAT_VERSION=1.0.0 -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_UITOOLS_LIB -DQT_UIPLUGIN_LIB -DQT_WIDGETS_LIB -DQT_WINEXTRAS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN
g++ -Wl,-subsystem,windows -mthreads -o ..\..\bin\installerbase.exe object_script.installerbase.Debug -lglu32 -lopengl32 -lgdi32 -lmingw32 -LC:/QT/Qt5.5.0_Static/lib -lqtmaind -LC:/QT/qt_projects/build-installerfw-Desktop_Qt_5_5_0_Static_MinGW_32bit-Debug/lib -linstaller -luser32 -l7z -lmpr -luuid -lQt5UiToolsd -lQt5Widgetsd -lQt5WinExtrasd -lQt5Guid -lQt5Concurrentd -lQt5Qmld -lQt5Networkd -lQt5Xmld -lQt5Cored -LC:/QT/Qt5.5.0_Static/plugins/platforms -lqwindowsd debug\installerbase_res.o
C:/Qt/Qt5.5.0/Tools/mingw492_32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lqwindowsd
collect2.exe: error: ld returned 1 exit status
Makefile.Debug:118: recipe for target '..\..\bin\installerbase.exe' failed
mingw32-make[3]: *** [..\..\bin\installerbase.exe] Error 1
mingw32-make[3]: Leaving directory 'C:/QT/qt_projects/build-installerfw-Desktop_Qt_5_5_0_Static_MinGW_32bit-Debug/src/sdk'
Makefile:34: recipe for target 'debug' failed
mingw32-make[2]: Leaving directory 'C:/QT/qt_projects/build-installerfw-Desktop_Qt_5_5_0_Static_MinGW_32bit-Debug/src/sdk'
Makefile:82: recipe for target 'sub-sdk-make_first-ordered' failed
mingw32-make[1]: Leaving directory 'C:/QT/qt_projects/build-installerfw-Desktop_Qt_5_5_0_Static_MinGW_32bit-Debug/src'
makefile:39: recipe for target 'sub-src-make_first-ordered' failed
mingw32-make[2]: *** [debug] Error 2
mingw32-make[1]: *** [sub-sdk-make_first-ordered] Error 2
mingw32-make: *** [sub-src-make_first-ordered] Error 2
08:49:09: Процесс «C:\Qt\Qt5.5.0\Tools\mingw492_32\bin\mingw32-make.exe» завершился с кодом 2.
Ошибка при сборке/установке проекта installerfw (комплект: Desktop Qt 5.5.0 Static MinGW 32 bit)
Во время выполнения этапа «Сборка»

Пробовал найти решение - не получилось.
Думаю, что может быть какая-то библиотека отсутствует, но не смог найти какая именно.

Ранее была похожая проблема - error: cannot find -lqtmaind. Я решил её так: скопировал библиотеку libqtmaind.a из обычной сборки (C:\QT\Qt5.5.0\5.5\mingw492_32\lib\) в статичную (C:\QT\Qt5.5.0_Static\lib\). Правильно я поступил или так нельзя делать - не знаю.

Я клонировал следующий проект GitHub на свой жесткий диск.

Я также установил Qt Creator 4.5.0. Однако, когда я пытаюсь загрузить проект в Qt Creator, он говорит, что нет действительных "kits", и не позволяет мне настроить проект. (По-видимому, это необходимый шаг, прежде чем я смогу построить проект.)

enter image description here

Что мне нужно сделать, чтобы это сработало? Спасибо.

Windows 10 Дом, Qt Создатель 4.5.0

1 ответ

Я пытаюсь скомпилировать приложение (Windows) QT в статическом режиме (конфигурация выпуска) с помощью Nokia QT Creator. Я скомпилировал сам QT статически в соответствии со стандартными инструкциями здесь . Однако, несмотря на запуск configure.exe с -qt-libjpeg, я все еще получаю следующую ошибку.

Я пытаюсь скомпилировать проект qt (в пределах Qt Creator 2.7.0 на Qt 5.0.2) и постоянно получаю ошибки компоновщика, связанные с библиотекой QtSQL (KioskBridge - это файл/класс, в котором я использую sql): kioskbridge.obj:-1: error: LNK2019: unresolved external symbol __declspec(dllimport).

Qt-это кроссплатформенный фреймворк, поддерживающий множество компиляторов c++, таких как MinGW GCC, Clang . и т. Д. Комплект-это набор пакетов Qt, предназначенных для конкретного компилятора C++ и реализующих библиотеки Qt для этого компилятора, это то, что вам нужно для компиляции вашего проекта в Qt creator . и они не являются частью самого создателя Qt, они должны быть загружены. следующие шаги подходят для того, чтобы Qt полностью функционировал.

Qt с открытым исходным кодом .

Есть два способа получить Qt, первый-загрузить source code пакетов/файлов и построить Qt самостоятельно (но это будет необходимо, если у вас есть причина для создания qt пакетов из исходных текстов самостоятельно). это здесь не рассматривается.

Шаги по установке и настройке prebuild Qt с открытым исходным кодом .

Загрузите Qt Онлайн-установщик для Windows , обычно из этого местоположения Qt Онлайн-установщик для Windows , это онлайн-установщик для Qt.

Запустите загруженный установщик, он проведет вас через несколько шагов, таких как создание учетной записи Qt и вход в систему .

Вы попадете на экран выбора компонентов, и это большая часть.

Разверните дерево селекторов Qt , вы получите 2 группы, список доступных готовых версий Qt и в нижней части дерево селекторов инструментов .

выберите версию Qt, которую вы хотите загрузить и установить.

Затем разверните дерево для этой версии и выберите интересующие вас компоненты, это наборы пакетов для списка компиляторов .. (например: пользователь windows может выбрать набор "MinGw x.x.x 32" для разработки под windows .. и компонент " Android " для разработки Android приложений на Qt Creator.

Перейдите в дерево инструментов, разверните его и выберите компоненты для загрузки и установки. Для Windows обычно вам нужны : Qt Creator Debugger, MinGW x.x.x (то же, что и выше) и Qt installer framework (который является инструментом обслуживания для Qt обновлений . и т. Д.).

Если вы выбрали MinGw kit в версии Qt , то вы должны загрузить соответствующий фреймворк MingW из ветки Инструментов, если у вас его нет.

  • После того, как все выбранные параметры будут сделаны, нажмите кнопку Далее и завершите установку.

Примечание: при чистой установке Qt он настраивается автоматически, и никакие дополнительные конфигурации не требуются -> Наборы автоматически настраиваются на основе установленных компонентов.

Похожие вопросы:

Я новичок в Qt Creator и читаю книгу Qt 5 Cadaques. Он сказал мне создать проект Qt Quick UI, который находится в другой категории проектов в новом окне проекта. Однако я не могу найти ничего.

Я использую qt 4.5 Я создал проект, и я хочу, чтобы скомпилировать на visual studio 2008 для windows мобильный 6.0 Поэтому я создал файлы проекта, делая это: D:\Projects\Phone_PDA\Phone_PDA>set.

Обычно я использую Qt creator с cmake для программирования проектов C++. В последнее время я довольно много читаю о мезоне, и это простота, и мне нравится ее проверять. Этот пример объясняет, как.

Я пытаюсь скомпилировать приложение (Windows) QT в статическом режиме (конфигурация выпуска) с помощью Nokia QT Creator. Я скомпилировал сам QT статически в соответствии со стандартными инструкциями.

Я пытаюсь скомпилировать проект qt (в пределах Qt Creator 2.7.0 на Qt 5.0.2) и постоянно получаю ошибки компоновщика, связанные с библиотекой QtSQL (KioskBridge - это файл/класс, в котором я.

Я создал проект Qt 5 в Qt Creator. Я хочу открыть и скомпилировать этот проект с Visual Studio 2012 на компьютере, на котором ничего не установлено о Qt. Как я могу заставить библиотеки qt следовать.

Я пытаюсь привязать фреймворк OpenCV, доступный для iOS, к проекту Qt 5.2 iOS. Пока без какого-либо полезного результата. Что работает, так это создать проект Qt без привязки к фреймворку OpenCV.

Привет всем, я скомпилировал статическую сборку qt, и все работает нормально . Но когда я пытаюсь скомпилировать проект qt, который включает в себя: QT += webkitwidgets Я получил ошибку: error.

Я нахожусь на MacOS 10.13.3, используя Xcode 9 в качестве моего IDE и пытаясь включить Qt 5.10 в мой проект Xcode. Я установил Qt (с документами и примерами) с Homebrew и запустил многие из них в.

Этот вопрос касается версии 2.0 Qt Installer Framework.

На данный момент для людей, использующих Qt Installer Framework, общеизвестно, что без настройки вы просто не сможете перезаписать существующую установку через ваш установщик. По-видимому, это было сделано для решения некоторых проблем, которые возникли, когда это было сделано с помощью инфраструктуры Qt.

Тем не менее, для небольших относительно простых проектов перезапись вполне удобна и намного удобнее, чем предварительное использование инструмента обслуживания вручную.

Я ищу решение, включающее пользовательский скрипт компонента UI +, который добавляет кнопку на целевую страницу каталога, которая позволяет пользователю

  1. Удалить указанный каталог, если он существует, или
  2. Запустите инструмент обслуживания в этом каталоге.

Было бы предпочтительно иметь возможность запускать инструмент обслуживания в целевом каталоге, с его автоматическим удалением определенного пакета, , но я понимаю, что это требует слишком много.

Я прочитал ответы на другие вопросы на этом сайте о решении той же проблемы, но ни одно из решений не работает правильно. Я также хотел бы отметить, что у меня запущен и работает скрипт компонента, но нет пользовательских интерфейсов.

3 ответа

Я наконец нашел подходящее решение.

Вам нужно три вещи, чтобы осуществить это:

  1. Компонентный скрипт,
  2. Пользовательский интерфейс для целевой страницы каталога и
  3. Скрипт контроллера, который автоматически выбирает программу удаления.

Я сейчас перечислю дословно, что работает для меня (с моим конкретным проектом). Мой компонент называется Atlas4500 Tuner

packages / Atlas4500 Tuner / meta / package.xml :

Сценарий пользовательского компонента packages / Atlas4500 Tuner / meta / installscript.qs :

Пользовательский виджет целевого каталога packages / Atlas4500 Tuner / meta / targetwidget.ui :

packages / Atlas4500 Tuner / data / scripts / auto_uninstall.qs :

Идея здесь состоит в том, чтобы определить, есть ли в текущем каталоге установка или нет, и, если это так, запустить инструмент обслуживания в этом каталоге с помощью скрипта контроллера, который просто щелкает по нему.

Обратите внимание, что я поместил скрипт контроллера в каталог скриптов, который является частью фактических данных компонента. Возможно, вы могли бы сделать что-то более чистое, если у вас есть несколько компонентов, но это то, что я использую.

Вы должны быть в состоянии скопировать эти файлы для себя и просто настроить строки, чтобы он работал.

Есть несколько вещей, которые вам нужно сделать:

Чтобы пройти мимо TargetDirectoryPage, чего вы можете достичь, добавив этот код installer.setValue («RemoveTargetDir», false)

Я взломал вокруг. Поместите его в конец вашего installscript.qs.

Это приведет к удалению maintenancetool.exe после ожидания 3 секунд, в результате чего установщик просто предупреждает, что целевая папка не пуста, а не отказывается установить. Кроме того, он удаляет запись реестра для удаления программы, чтобы он не накапливался в добавлении / удалении программ. Очевидно, что после удаления средства обслуживания вы больше не сможете его использовать для таких вещей, как удаление или обновление, но я поддерживаю это только через повторный запуск установщика. Инструмент обслуживания написан только после завершения установки, и cmd start cmd заключается в том, чтобы сделать так, чтобы установщик не заметил, что какой-то шаг еще выполняется. Если у вас есть несколько дополнительных компонентов, вам может потребоваться увеличить задержку или сделать ее более надежной, чтобы проверить, работает ли что-то еще.

В теории не должно быть необходимости писать командный файл и затем выполнять его. Вы должны быть в состоянии выполнить команду напрямую. На практике я не нашел способа правильно экранировать кавычки, чтобы заставить правильный экземпляр cmd оценивать правильные части.

Люди, вот уже 10-й день я не могу толком запустить QT Creator. Только забаненный вчера аккаунт заставляет меня быть здесь крайне корректным. А так эмоции переполняют. Такое ощущение, как-будто в магазине IKEA мне пытаются продать бревно, из которого я сам должен вырезать детали, собрать необходимую мне мебель. Причем инструменты я должен изготовить и другого куска металла, который мне тоже пытаются продать.
Коротко!! Как мне установить этот . превосходный продукт первоклассных разработчиков, у которых золотые руки растут прямо из плеч на windows 8.1 64 bit? Вопрос стоит чисто принципиальный. Я установлю и снесу его к. просто хочется уже понять что я не так делаю.
Вопрос о разработчиках можно не обсуждать. Мне все и так понятно. Они самые лучшие.

@jsulm
-Сэр, протокол разрешает говорить, что Qt - говно, а разрабы тупицы?

  • Нет сэр, протокол не разрешает говорить, что Qt - говно, а разрабы тупицы.
  • Хорошо сэр, тогда я не буду говорить что Qt - говно, а разрабы тупицы.

@khch Установил аж 5.10. установил все, на что ругался creator. Настройки под конец уже комбинировал перебором всех возможных вариантов. Не все, конечно, перебрал, но тем не менее.
Умом я понимаю, что раз люди работают с этим - то это возможно!!
Но почему можно установить CODE BLOCK и работать. Установить MVS и работать. А с этой штукой . чего я не пойму.

@khch данный форум не позволяет мне выражаться, чтобы я объяснил вам, почему же нельзя вот так просто поставить г. но и работать :D

По этому люди и выбирают, как Вы выразились, самый лучший Qt.

Не понимаю, что могло произойти не так с установкой и запуском. Всё очень легко, быстро и не требовательно

Это все? НАдо же как содержательно. Могу я Вас тут, в ответах, больше не видеть?? я скачал, в общей сложности, 100 Гб файлов Qt. Инсталлируя и деинсталлируя, комбиировал всякое со всяким, откатывал систему и все такое. А вижу что-то такое постоянно. Не удалось определить, какую команду «make» запускать. Проверьте шаг «make» в конфигурации сборки.
Ошибка при сборке/установке проекта untitled (комплект: Desktop Qt 5.10.0 MSVC2013 64bit)
Во время выполнения этапа «qmake»

Это все? НАдо же как содержательно. Могу я Вас тут, в ответах, больше не видеть??

Не можете. Я здесь отвечаю в целях кому-то помочь.

Дайте пожалуйста ссылку, откуда Вы качали Qt. Когда-то я сам путался с установкой

Окей. В пути проекта есть папки с пробелами и кириллицей?

@razorqhex
Качал с офсайта. триал версия. Ладно бы с open такое. Я бы понял. Но коммерческая версия, да еще и пробная, которая априори должна быть быть хороша во всем. Да как так-то? Я не профи, програмирование знаю так себе. Но знаю одно: Геморой должен быть с проектом (любым, в любой области), а не с оборудованием (любым, в любой области).

@khch
Скачайте Qt по ссылке, которую я Вам дал. И не будет никаких проблем.

Также избегайте русские символы и пробелы в пути проекта.

Ссылка, которую я Вам дал, тоже с оф сайта

Окей. В пути проекта есть папки с пробелами и кириллицей?
Заменил все.

@khch как что? Если у Вас винда, то для винды. Если другая ОСька, то качайте соответствующую

@razorqhex Странно. как я не подумал об этом.
Qt 5.10.1 for Windows (2.3 GB) (info)
5.9.x Offline Installers
5.6.x Offline Installers
Qt 5.6.3 for Windows 64-bit (VS 2015, 893 MB) (info)
Qt 5.6.3 for Windows 32-bit (VS 2015, 869 MB) (info)
Qt 5.6.3 for Windows 64-bit (VS 2013, 874 MB) (info)
Qt 5.6.3 for Windows 32-bit (VS 2013, 855 MB) (info)
Qt 5.6.3 for Windows 32-bit (MinGW 4.9.2, 1.0 GB) (info)
Qt 5.6.3 for Android (Windows 32-bit, 1.1 GB) (info)
Qt 5.6.3 for WinRT 32-bit (VS 2013, 1.0 GB) (info)
Qt 5.6.3 for WinRT 32-bit (VS 2015, 1.0 GB) (info)

@khch ну в общем, я так понял, что Вы нашли то что хотели? 5.10.1 - самая новая версия Qt'а

@razorqhex Она не работает у меня. В этом-то и вопрос. Я же ее качал!!

@khch именно ту, ссылку которой я дал?

@razorqhex
Ну я, по-честному, онлайн устанавливал.

@khch скачайте offline версию, которую я Вам дал по ссылке выше


@khch Kakuju imenno versiju?
Proshe vsego: Qt 5.10.1 for Windows 32-bit (MinGW 4.9.2, 1.0 GB) (info)
Chtoby ispolsovat VS 201* nuzhen Vusual Studio.


@khch MinGW oficial'no est' tol'ko 32 bit. 32bit programy rabotajut na 64bit OS.

@jsulm
Ни хрена не работает. Теперь даже нет комплектов с widget. И нет SDK. И я не могу их установить.
Я сам с себя худею. Зачем мне это все. Ведь если мне не нравится, допустим, костюм или, там, обувь, так я её не покупаю!! Зачем я с этим вожусь. Продукт откровенно нехороший. Чего я к нему прицепился, сам себя не пойму.


@khch U menja eshe nikogda ne bylo problem s Windows 32-bit (MinGW 4.9.2, 1.0 GB) (info).
Mozhet ustranit' ves' Qt i ustanovit' zanovo Windows 32-bit (MinGW 4.9.2, 1.0 GB) (info) ?

@razorqhex
В общем, я удалил к чертям все, что скачал и установил, закачал по ссылке что-то там. и вернулся туда, где был.

Ну то есть все да? Решить проблему никак нельзя? Коммерческий продукт никак не работает на Windows 8.1 64 bit?
Вопрос решен?

@jsulm
-Сэр, протокол разрешает говорить, что Qt - говно, а разрабы тупицы?

  • Нет сэр, протокол не разрешает говорить, что Qt - говно, а разрабы тупицы.
  • Хорошо сэр, тогда я не буду говорить что Qt - говно, а разрабы тупицы.


@khch Izvenite, Vy vsegda tak s ljudmi obshaetes'? Vam nikto ne zapreshaet schitat' chto Qt govno i razrabotchiki tupizy. No zahodit' v forum gde ljudi dobrovol'no i bezplatno pomogajut drugim (zdes' obychno net razrabotchikov Qt) reshat' problemy i pisat' takie veshi po menshej mere ne vezhlivo i neprilichno. Zdes' delo ne v protokole a v vospitanii. Poetomu vas sovershenno pravil'no zabanili i u menja tozhe bolshe net zhelanija pomogat' cheloveku kotoryi krome kak grubit' i oskorbljat' pohozhe malo chego mozhet. Vy schitaete chto razrabotchiki Qt tupizy? Tak vy dazhe ne sposobny ustanovit' Qt!
Ja znaju chto byvajut Problemy s ustanovkoj Qt i zdes' uzhe ne raz pomogali reshat' eti problemy. No v vashem sluchae u kogo budet zhelanie pomogat' kogda chitaesh takuju primitivnost'? Poprobujte byt' vezhlivee i zderzhanee ili ispol'sujte chto nibud' poproshe tipa Basic.


To jest' vy ne imeete ni malejshego predstavlenija chto vy delaete? Takim sposobom vy navrjatli dobjetes' chego libo.

Kstati, Qt ne tol'ko kommercheskij no mezhet byt' ispol'sovan bezplatno. Vy mozhete kupit' kommercheskuju licensiju togda vam budet pomogat' "The Qt company". Pravda ja somnevajus' chto im ponravit'sja esli vy ih budete nazyvat' tupizy.

Да у меня Windows 8.1 x64 и работает всё прекрасно. Qt вообще самая прекрасная IDE. Удобный фреймворк, прекрасное решение для создания программ с красивым, плавным интерфейсом QtQuick QML

Читайте также: