Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Qt Qt добрый день, поставил сейчас Qt, создал новый проект, поприветствовал мир и....... и не нашел куда ткнуть дальше =) как в нём компилировать? https://www.cyberforum.ru/ qt/ thread234346.html Как вывести char в QTextEdit? C++ Qt
Изините, не подскажите, как мне в QTextEdit вывести символ char?
C++ Qt Перенести программу Скомпилировал свою программу под Windows и перенес на другой компьютер, на котором не установлен Qt. Вылетела такая ошибка: Запуск программы невозможен, так как на компьютере отсутствует libgcc_s_dw2-1.dll. Попробуйте переустановить программу. Уверен, если я возьму libgcc_s_dw2-1.dll, то он потребует еще библиотек. Как перенести программу на другой компьютер? Использовал: QApplication... https://www.cyberforum.ru/ qt/ thread234286.html C++ Qt Потоки\формы https://www.cyberforum.ru/ qt/ thread234143.html
Поток должен получать данные с формы , как это лучше реализовать ? передать онные в параметрах конструктора?
C++ Qt Возникаемая ошибка при сборке проекта в QT
При сборке проекта в QT через QT Creator произошла проблема: при нажатии на собрать все (иконка молотка) в консоли сборки начинается выводиться Выполняется сборка проекта QG1... Настройки не изменились, этап QMake пропускается. Запускается: D:/Qt/mingw/bin/mingw32-make.exe -w mingw32-make: Entering directory `D:/Qt/test1/testQt/QG1' d:\Qt\qt\bin\qmake.exe -win32 -o Makefile QG1.pro...
C++ Qt Программа неожиданно завершилась. Пишу текстовый редактор, ошибок нет! Но при компиляции появляется такая надпись: Запускается /home/denis/untitled-build-desktop/untitled... Программа неожиданно завершилась. /home/denis/untitled-build-desktop/untitled завершился с кодом 0 Код: mainwindow.h #include <QMenu> #include <QToolBar> #include <QTextEdit> #include <QMainWindow> https://www.cyberforum.ru/ qt/ thread233840.html
C++ Qt Динамическая память в Qt Когда только начинал писать на qt где-то читал что самой распространенной ошибкой программистов перешедших на qt является самостоятельный контроль за памятью. Сейчас что то нечего по этой теме найти не могу вразумительного... https://www.cyberforum.ru/ qt/ thread233702.html Создание диалоговых окон типо next\back C++ Qt
Собстно как это лучше реализовать ?
C++ Qt Qt. Рисование на форме. https://www.cyberforum.ru/ qt/ thread232895.html
Есть код: mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow;
C++ Qt Сигналы\слоты https://www.cyberforum.ru/ qt/ thread232835.html
что можно сделать со сл. кодом connect(chromeDecrypt,SIGNAL(AddLineToResultTable(QString,QString,QString)),SLOT(OnAddLineToResultTable(QString,QString,QString))); connect(operaDecrypt,SIGNAL(AddLineToResultTable(QString,QString,QString)),SLOT(OnAddLineToResultTable(QString,QString,QString)));...
C++ Qt Сокрытие кнопки окна с taskbar
Добрый день. Возникла такая ситуация: нужно скрыть кнопку окна с панели задач, причём и для Windows и для Linux. Судя по результатам поиска, тема актуальная, однако ответа я нигде не нашёл. Qt 4.6. Заранее спасибо. Администраторам: Оригинальное название темы "Сокрытие кнопки с панели задач" не было принято форумом: "Название темы не должно содержать слов Задача, HELP, Помогите, Плз,...
C++ Qt Связь сигнал\слотов с разных форм. https://www.cyberforum.ru/ qt/ thread231965.html
Собстно как ? в классе основной формы есть слот void someSlot(); и метод void someMethod(); ,который создает новую форму кодом вида (new newForm)->show(); в классе новой формы есть сигнал void someSignal(); так вот, нужно связать сигнал и слот с разных форм.
377 / 357 / 23
Регистрация: 14.12.2010
Сообщений: 1,265
0

Сборка Qt: отучение Qt от mingw10.dll, libgcc_s_dw2-1.dll и других Qt***.dll - C++ Qt - Ответ 1320270

27.01.2011, 00:55. Показов 95835. Ответов 4
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
В связи с тем, что часто возникают одни и те же вопросы, а в нете копаться никто не любит привожу перевод буржуйской вики по отлучению программ Qt от своих библиотек.
То есть статической линковке приложений с библиотеками, в результате чего получается автономный исполняемый файл, запускаемый на любом компьютере. Данное руководство актуально для пользователей ОС Windows, до никсов доберемся потом.

Если раньше в том же C++ Builder 6 статическая и динамическая линковка задавалась просто установкой и снятием галочки в свойствах проекта, здесь все хуже: нам нужно перекомпилировать и пересобрать весь Qt заново.

1. Для удобства ставим еще один Qt, в другую папку, называем так, чтобы не путаться (я добавляю static в название папки)
2. Далее, для пользователей компилятора MinGW:
редактируем файл <QTDIR>\mkspecs\win32-g++\qmake.conf, где <QTDIR> - каталог установки Qt. привожу изменения для разных версий Qt:

4.6 и новее:

Добавляем в QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc строку -static -static-libgcc, получаем:
QMAKE_LFLAGS = -static -static-libgcc -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc

от 4.3 до 4.5:

Добавляем в QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc строку -static, получаем:

QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc

версии ниже 4.2:

1. Из строки QMAKE_CFLAGS_THREAD = -mthreads удяляем -mthreads

2. Из QMAKE_LFLAGS = -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc удаляем -mthreads и добавляем -static, получаем:
QMAKE_LFLAGS = -static -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc

Для пользователей MSVS:

Для устранения зависимости от библиотек msvc*.dll.
Так же редактируем файл <QTDIR>\mkspecs\win32-[версия MSVS]\qmake.conf, для каждой версии MSVS - свой:
msvc для Visual Studio 6
msvc.net для Visual Studio.NET 2002-2003
msvc2005 для Visual Studio.NET 2005
msvc2008 для Visual Studio.NET 2008

Меняем QMAKE_CFLAGS_RELEASE = -O2 -MD на QMAKE_CFLAGS_RELEASE = -O2 -MT

Примечание: если параметр равен -O2 -MD -GL, удалите -GL (тестировано на msvc-2008)

Для версий старше 4.3.2 нужно еще в этом же файле:
(тестировано на Visual Studio 2005 и Visual Studio 2008)

заменить
CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe

на

CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target

_____________________________________________________________
С редактированием файлов закончили, переходим к сборке.

3. Сборка.
Открываем консоль Qt Command Prompt того Qt, что для статической линковки (можно и обычную виндовскую - но тогда переменные окружения нужно вручную добавить) и выполняем команды:
для MinGW:

configure -static -release -no-exceptions
(можно еще добавить -nomake-demos -nomake-examples - не собирать примеры и демки, что несколько ускорит процесс, плюс здесь же добавляется поддержка плагинов Qt, но не все плагины доступны для статической линковки в бесплатной версии Qt)

затем:

mingw32-make sub-src


для MSVS:

configure -static -release

затем:

nmake sub-src

и запасаемся терпением или идем пить чай, процесс длится минут 20.

После нормального завершения процесса наш Qt может собирать программы, не зависящие от его библиотек.
4. Редактируем профили Qt.
Заходим в QtCreator (любой из них - профили все-равно общие), открываем проект, заходим в параметры проекта и открываем управлением профилем Qt, там будет список конфигураций, как правило первая - конфигурация AUTO, ее не трогаем (если раньше стоял Qt - там будет еще и список его профилей, при удалении Qt - он реестр за собой не чистит, наглец ))).

Находим конфигурацию, где qmake.exe находится в папке со статическим Qt и как-нибудь обзываем профиль, чтобы нам было понятно для чего он и не путаться в дальнейшем.
Теперь при входе в "обычный" QtCreator мы будем выбирать профиль проекта "динамический", а для статической сборки - наш "статический" профиль.

Добавлено через 14 минут
обратите внимание, что Qt командой configure -static -release сконфигурирован для релиза (Release), для использования в режиме отладки (Debug) необходимо пользоваться configure -static -debug или configure -static -debug-and-release



Вернуться к обсуждению:
Сборка Qt: отучение Qt от mingw10.dll, libgcc_s_dw2-1.dll и других Qt***.dll C++ Qt
41
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2011, 00:55
Готовые ответы и решения:

отсутствует libgcc_s_dw2-1.dll
В общем. Загуглил и нашел, что нужна статическая линковка. Какие-то флаги установить на static и...

Отучение qt 5.0.2 от *.dll
Читал разные темы, но с qt 5 все несколько иначе. Все делал по статье...

Отучение qt 5.0.1 от *.dll
Вообщем не получается. Читал темы с пометкой ВАЖНО где приведены варианты не работает , линки...

Отучение qt 5.1.1 от *.dll
Да да... знаю. Уже надоели такие темы. Но всё же пишу её, потому как выскочила ошибка, и справиться...

4
27.01.2011, 00:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2011, 00:55
Помогаю со студенческими работами здесь

MinGW версии 4.5.0 содержит libgcc_s_dw2-1.dll без которой ни одна скомпилированная прога не запускается. А как же запускать проги на других машинах?
То есть установил такой пакет и скомпилил прогу #include &lt;stdio.h&gt; using namespace std; int...

Eclipse и libgcc_s_dw2-1.dll
Поставил Eclipse, установил MinGW, выбрал стандартный проект Hello World, при нажатии на Run пишет,...

Точка входа в процедуру не найдена в библиотеке DLL MyLib.dll
Привет! Не думал, что столкнусь с такой проблемой, но все же она меня нашла) Использую вот эту...

Не собираются qsqlmysql.dll и qsqlmysqld.dll под qt 5.1.1 mingw4.8
Пользуясь вот этой статьёй ...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru