Просмотр сообщений
|
Страниц: [1] 2 3
|
2
|
Qt / Вопросы новичков / Re: Как передать параметр в слот?
|
: Октябрь 26, 2018, 17:48
|
Прошу прощения за оффтоп. Судя по вопросу, TC вообще новичок в Qt. А начинать с 4.8, когда уже есть 5.11 может только большой оригинал))
Не согласен. Если вы вынуждены использовать CentOS 6.9 и унаследованные от нее дистрыбутивы, то Qt5 вам нужно или собирать самому Qt5, или искать левые репозитрии.
|
|
|
3
|
Qt / Вопросы новичков / Решено: Не собирается проект с QNetworkInterface
|
: Октябрь 26, 2018, 17:44
|
Добрый день. Решил сделать консольный проект с использованием QNetworkInterface. Qt Creator сгенерировал Pro-файл, в котором я подключил модуль "network" QT -= gui
CONFIG += c++11 console core network CONFIG -= app_bundle
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += Source/main.cpp Source/Console/mainconsole.cpp
HEADERS += \ Headers/Console/mainconsole.h
Если я в хедер прописываю инклюд #include <QNetworkInterface> то Qt Creator ругается, что нет такого файла, а компилятор Bash In file included from ../NetworkControl/Source/main.cpp:1: ../NetworkControl/Headers/Console/mainconsole.h:6:0:9:29: fatal error: QNetworkInterface: No such file or directory
Если я добавляю иклюд так #include <QtNetwork/QNetworkInterface> то Qt Creator перестает ругаться, но компилятор ругается на все функции из этого класса ../NetworkControl/Source/Console/mainconsole.h:16: undefined reference to `QNetworkInterface::allInterfaces()' ../NetworkControl/Source/Console/mainconsole.h:20: undefined reference to `QNetworkInterface::addressEntries() const' ... Пробовал как на сборке из дистрибутива (Rosa Fresh R10) - Qt 5.9.4 , так и на сборке Community - Qt 5.9. Как я понял, то в первом случае система не видит для начала хедеры. Во вором - либу. Подозреваю, что я могу решить проблему, прописав путь до либы в Pro-файле. Но разве это не должен был сделать конфиг 'network'?
|
|
|
4
|
Qt / Общие вопросы / Qt и LibreOffice: ошибки компиляции приложения
|
: Август 25, 2017, 07:28
|
Добрый день! Пытаюсь сделать подключение из программы с использованием Qt к LibreOffice. SDK собрал. Симлинки на каталоги собранных SDK файлов скинул в /usr/include. Пока в своей программе только проинклюдил хедеры SDK-шные и прописал неймспейсы, как при компиляции начали вылетать ошибки типа "'SAL_DLLPUBLIC_IMPORT’ does not name a type" . Что я делаю не так? Весь проект во вложении. Архив с SDK не проходит по размеру. Выложил на ЯД. UPD: Все оказалось просто. Я не продефайнил ОС.
|
|
|
5
|
Qt / Установка, сборка, отладка, тестирование / Re: Не собирается Qt 5.7 и 5.8 gjl MinGW-W64 (seh-posix) 6.2.0, 6.3.0, 7.1.0
|
: Май 15, 2017, 08:36
|
Есть уверенность в необходимости -developer-build -icu ?
Нет, нету. Эти параметры я использовал, когда собирал 5.6 статик, компилятором, который шел в комплекте с 5.6 шаред с оффсайта. configure -prefix C:\Qt\Qt5.7.1_mingw64 -debug-and-release -optimized-tools -opensource -confirm-license -nomake tests -nomake examples -shared -ltcg -make tools -opengl desktop -platform win32-g++ -v -skip activeqt -skip charts -skip datavis3d -skip declarative -skip gamepad -skip location -skip purchasing -skip sensors -skip serialbus -skip serialport -skip virtualkeyboard > configure.log 2> configure.err Я собираю с такой конфигурацией вот этим https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/ Компилятор я отсюда и брал. Попробую собрать с таким конфигом. Спасибо.
|
|
|
6
|
Qt / Установка, сборка, отладка, тестирование / Не собирается Qt 5.7 и 5.8 gjl MinGW-W64 (seh-posix) 6.2.0, 6.3.0, 7.1.0
|
: Май 11, 2017, 06:11
|
Добрый день! Не могу собрать Qt MinGW-W64. Пробовал различные релизы MinGW-W64 (x86_64-posix-seh-rev1, Built by MinGW-W64 project) 6.2.0, 6.3.0, 7.1.0, но ошибка повторяется Конфигурирую так: configure -static -debug-and-release -platform win32-g++ -developer-build -c++std c++11 -prefix " e:\Qt\5.8\x86_64_w64_minigw32_posix_6.3.0_static" \ -opensource -confirm-license -icu -nomake examples -nomake tests -make tools -qml-debug -opengl desktop -system-proxies -make libs -qt-pcre -qt-libpng -qt-libjpeg -qt-zlib \ -qt-freetype -qt-sql-sqlite -qt-sql-odbc -qt-sql-mysql -openssl -openssl-linked OPENSSL_LIBS="-luser32 -ladvapi32" OPENSSL_LIBS_RELEASE="-llibcrypto \ -llibssl" OPENSSL_LIBS_DEBUG="-llibcryptod -llibssld" -l libmysql -I "c:\Lib\include\mysql" -I "d:\Qt\Tools\MinGW\mingw64-x86_64-6.2.0-release-posix-seh-rt_v5-rev1\include" \ -I "d:\Qt\Tools\MinGW\mingw64-x86_64-6.2.0-release-posix-seh-rt_v5-rev1\x86_64-w64-mingw32\include" -I "d:\Qt\Tools\MinGW\mingw64-x86_64-6.3.0-release-posix-seh-rt_v5-rev1\opt\include" \ -I "c:\usr\openssl-x64-mingw64\include" -I "c:\usr\openssl-x64-mingw64\include\openssl" -I "d:\opensource\icu\icu_static_release\include" -L "d:\Qt\Tools\MinGW\mingw64-x86_64-6.3.0-release-posix-seh-rt_v5-rev1\lib" \ -L "d:\Qt\Tools\MinGW\mingw64-x86_64-6.3.0-release-posix-seh-rt_v5-rev1\x86_64-w64-mingw32\lib" -L "d:\Qt\Tools\MinGW\mingw64-x86_64-6.2.0-release-posix-seh-rt_v5-rev1\opt\lib" \ -L "c:\usr\openssl-x64-mingw64\lib" -L "d:\opensource\icu\icu_static_release\lib" -L "c:\Lib\lib64_VS2015\MySQL" Ошибка вылетает следующая: gcc -c -pipe -fno-keep-inline-dllexport -O2 -w -DUNICODE -DPCRE_STATIC -DHAVE_CONFIG_H -DQT_NO_DYNAMIC_CAST -DQT_NO_EXCEPT IONS -I. -I. -Ic:/Lib/include/mysql -Id:/Qt/Tools/MinGW/mingw64-x86_64-6.2.0-release-posix-seh-rt_v5-rev1/include -Id:/Qt/ Tools/MinGW/mingw64-x86_64-6.2.0-release-posix-seh-rt_v5-rev1/x86_64-w64-mingw32/include -Id:/Qt/Tools/MinGW/mingw64-x86_6 4-6.3.0-release-posix-seh-rt_v5-rev1/opt/include -Ic:/usr/openssl-x64-mingw64/include -Ic:/usr/openssl-x64-mingw64/include /openssl -Id:/opensource/icu/icu_static_release/include -I../../../mkspecs/win32-g++ -o .obj/release/pcre16_xclass.o pcre 16_xclass.c In file included from ../../../include/QtCore/qdebug.h:1:0, from ../../corelib/global/qlogging.cpp:47: ../../../include/QtCore/../../src/corelib/io/qdebug.h: In member function 'void QDebug::Stream::setVerbosity(int)': ../../../include/QtCore/../../src/corelib/io/qdebug.h:99:42: error: result of '(7 << 29)' requires 33 bits to represent, b ut 'int' only has 32 bits [-Werror=shift-overflow=] flags &= ~(VerbosityMask << VerbosityShift); ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ cc1plus.exe: all warnings being treated as errors Makefile.Release:1519: recipe for target '.obj/release/qlogging.o' failed mingw32-make[4]: *** [.obj/release/qlogging.o] Error 1 mingw32-make[4]: Leaving directory 'D:/Qt/Build/Src_mingw_posix_static/qtbase/src/tools/bootstrap' Makefile:34: recipe for target 'release' failed mingw32-make[3]: *** [release] Error 2 mingw32-make[3]: Leaving directory 'D:/Qt/Build/Src_mingw_posix_static/qtbase/src/tools/bootstrap' Makefile:91: recipe for target 'sub-bootstrap-make_first' failed mingw32-make[2]: *** [sub-bootstrap-make_first] Error 2 mingw32-make[2]: *** Waiting for unfinished jobs.... ar -M < object_script.libqtpcre.Release mingw32-make[4]: Leaving directory 'D:/Qt/Build/Src_mingw_posix_static/qtbase/src/3rdparty/pcre' mingw32-make[3]: Leaving directory 'D:/Qt/Build/Src_mingw_posix_static/qtbase/src/3rdparty/pcre' mingw32-make[2]: Leaving directory 'D:/Qt/Build/Src_mingw_posix_static/qtbase/src' Makefile:42: recipe for target 'sub-src-make_first' failed mingw32-make[1]: *** [sub-src-make_first] Error 2 mingw32-make[1]: Leaving directory 'D:/Qt/Build/Src_mingw_posix_static/qtbase' Makefile:75: recipe for target 'module-qtbase-make_first' failed mingw32-make: *** [module-qtbase-make_first] Error 2
OpenSSL собран этим же компилятором. (Использовать Visual Studio не хочу по многим причинам. Первая и основная сама студия жрет очень много места и ресурсов ПК.) Есть ли возможность собрать Qt под MinGW-W64? PS: Я как понимаю, собрать MySQL mingw вообще нельзя?
|
|
|
7
|
Qt / Установка, сборка, отладка, тестирование / Re: [РЕШЕНО] Статическая сборка Qt 5.7.0 +mysql +openssl (MSVC 2015 x64)
|
: Май 10, 2017, 13:03
|
Для себя делал кучу батников для быстрой настройки среды и сборки OpenSSL и MySQL Настройка среды DOS @echo off echo Setting up environment... if "%1" == "" goto x86 if "%1" == x86 goto x86 if "%1" == x64 goto x64 :x86 set PERL=<Path_To_Perl_32>\bin\ set PYTHON=<Path_To_Python_32>\ set RUBY=<Path_To_Rubi_32>\bin\ set NASM=<Path_To_NAsm_32>\ set CMAKE=<Path_To_CMake_32>\bin\ goto usage :x64 set PERL=<Path_To_Perl_64>\bin\ set PYTHON=<Path_To_Python_64>\ set RUBY=<Path_To_Rubi_64>\bin\ set NASM=<Path_To_NAsm_64>\ set CMAKE=<Path_To_CMake_64>\bin\ goto usage :usage set PATH=%PERL%;%PYTHOM%;%RUBY%;%NASM%;%CMAKE%;%PATH%
Сборка OpenSSL DOS echo Build OpenSSL set OPENSSLSRC=<Path_To_OpenSSL_SRC>\ set OPENSSLINSTALL=<Path_Where_Will_Be_Installes_OpenSSL_Builds>\ cd %OPENSSLSRC% set LNKD=Shared set DMG=Release if "%1" == "" goto x86 if "%1" == x86 goto x86 if "%1" == x64 goto x64 goto x86 :x86 set_vs_evn.bat x86 set VCARCH=VC-WIN32 set ORCH=32 goto testdebug :x64 set_vs_evn.bat x64 set VCARCH=VC-WIN64A set ORCH=64 goto testdebug :testdebug if "%2" == "" goto teststatic if "%2" == "/release" goto teststatic if "%2" == "/debug" goto makedebug if "%2" == "release" goto teststatic if "%2" == "debug" goto makedebug if "%3" == "" goto teststatic if "%3" == "/release" goto teststatic if "%3" == "/debug" goto makedebug if "%3" == "release" goto teststatic if "%3" == "debug" goto makedebug goto teststatic :makedebug set VCARCH=debug-%VCARCH% set DMG=Debug goto teststatic :teststatic if "%2" == "" goto configure if "%2" == "/shared" goto configure if "%2" == "/static" goto makestatic if "%2" == "shared" goto configure if "%2" == "static" goto makestatic if "%3" == "" goto configure if "%3" == "/shared" goto configure if "%3" == "/static" goto makestatic if "%3" == "shared" goto configure if "%3" == "static" goto makestatic goto configure :makestatic set LNKD=Static goto configure :configure perl Configure %VCARCH% --prefix=%OPENSSLINSTALL%\OpenSSL_%ORCH%_%LNKD%_%DMG% ms\do_ms if "%LNKD" == "Shared" goto sharedbuild if "%LNKD" == "Static" goto staticbuild goto sharedbuild :sharedbuild nmake -f ms\ntdll.mak nmake -f ms\ntdll.mak install goto :eof :staticbuild nmake -f ms\nt.mak nmake -f ms\nt.mak install goto :eof
Сборка MySQL DOS echo Build MySSL set MYSQLSRC=<Path_To_MySQL_SRC>\ set BOOSTSRC=<Path_To_BOOST_SRC>\ set BUILDROOT=<Path_For_Build_MySQL>\ cd %BUILDROOT% if "%1" == "" goto x86 if "%1" == x86 goto x86 if "%1" == x64 goto x64 goto x86 :x86 set_vs_evn.bat x86 set VCARCH="Visual Studio 14 2015" set ORCH=32 goto testdebug :x64 set_vs_evn.bat x64 set VCARCH="Visual Studio 14 2015 Win64" set ORCH=64 goto testdebug :testdebug if "%2" == "" goto makerelease if "%2" == "/release" goto makerelease if "%2" == "release" goto makerelease if "%2" == "/debug" goto makedebug if "%2" == "debug" goto makedebug goto makerelease :makedebug set DMG=Debug goto configureandbuild :makerelease set DMG=Release goto configureandbuild :configureandbuild mkdir %BUILDROOT%\MySQL_%ORCH%_%DMG% cd %BUILDROOT%\MySQL_%ORCH%_%DMG% cmake %MYSQLSRC% -G %VCARCH% -DWITH_BOOST=%BOOSTSRC% devenv.com MySQL.sln /build %DMG% goto :eof
Ну а сама сборка DOS set_common_evn.bat "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64 D: cd D:\ build_OpenSSL.bat x64 release static build_OpenSSL.bat x64 debug static cd <Path_Where_Will_Be_Installes_OpenSSL_Builds>\OpenSSL_x86_Static_Debug_VisualStudio\lib REN libeay32.lib libeay32D.lib REN ssleay32.lib ssleay32D.lib cd D:\ build_MySQL.bat x64 release
Далее правлю Src\qtbase\mkspecs\common\msvc-desktop.conf QMAKE_CFLAGS_RELEASE = -O2 -MT QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi QMAKE_CFLAGS_DEBUG = -Zi -MTdd Ну и в каталоге сборки Qt выполняю DOS ..\..\Src\configure.bat -static -debug-and-release -platform win32-msvc2015 -c++std c++11 -prefix "..\..\..\..\..\Qt\5.7\msvc2015_x64_static" -opensource -confirm-license -nomake examples -nomake tests -make tools -qml-debug -opengl dynamic -system-proxies -make libs -qt-pcre -qt-libpng -qt-libjpeg -qt-zlib -qt-freetype -qt-sql-sqlite -qt-sql-odbc -qt-sql-mysql -openssl -openssl-linked OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32" OPENSSL_LIBS_RELEASE="-llibeay32MT -lssleay32MT" OPENSSL_LIBS_DEBUG="-llibeay32MTd -lssleay32MTd" -l mysqlclient -I "<mysql-%Version%\include>l" -I "<Path_Where_Will_Be_Installes_OpenSSL_Builds>\OpenSSL_x86_Static_Release_VisualStudio\lib\include" -L "<Path_For_Build_MySQL>\libmysql\Release" -L "<Path_Where_Will_Be_Installes_OpenSSL_Builds>\OpenSSL_x86_Static_Debug_VisualStudio\lib" -L "<Path_Where_Will_Be_Installes_OpenSSL_Builds>\OpenSSL_x86_Static_Relesa_VisualStudio\lib" -L "c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64" nmake /nologo nmake /nologo install
mysql-%Version%\include можно взять в официальном пакете MySQL. А вот на сборке версии для MinGW-W64 я спотыкаюсь на ошибках сборки MySQL и Qt.
|
|
|
8
|
Qt / Вопросы новичков / Re: Преобразование приложения в библиотеку &#38;#
|
: Май 10, 2017, 12:14
|
Я скачал проект. В какой строке сделан инклуд? В mainwindow.h в 9 строке имеется только предварительное объявление, о чём и сообщает компилятор при сборке mainwindow.cpp
Все-таки проблема оказалось в том, что нельзя создавать дочерние объекты унаследованные от класса mainwindow. Поэтому я не смог правильно проинклюдить. Сделал тестовый проект (без либы), где правильно все проинклюжено и основной функционал работает. Теперь буду исправлять панель инструментов, чтобы и она работала, а не мешала. Как только исправлю это, буду снова делать либу.
|
|
|
10
|
Qt / Вопросы новичков / Re: Преобразование приложения в библиотеку и добавление в свой проект.
|
: Апрель 28, 2017, 05:37
|
Судя по ошибке, забыт какой-нибудь C++ (Qt) #include <FileImageView>
Ну вообще-то это класс, который предоставляет программа qpdfview. На хедар с ним я инклюд сделал. так он и говорит - нет такого класса qpdfview::FileImageView есть какойто qpdfview::Settings::FileImageView - но наверно это не то
а зачем pdf смотреть средствами qt, системный чем плох ?
Системный не подходит по двум причинам: - мне нужно использовать просмоторщик в своем приложении (причем на разных формах) - приложение должно быть кроссплатформенно. Сам класс FileImageView объявлен так: #include <QMainWindow>
#include <QPointer>
#include "fileimageview_global.h"
#ifdef WITH_DBUS
#include <QDBusAbstractAdaptor>
#endif // WITH_DBUS
class QCheckBox; class QDateTime; class QGraphicsView; class QFileInfo; class QModelIndex; class QShortcut; class QTableView; class QTreeView; class QWidgetAction;
#include "renderparam.h"
namespace qpdfview {
class Settings; class DocumentView; class TabWidget; class TreeView; class ComboBox; class MappingSpinBox; class SearchLineEdit; class SearchableMenu; class RecentlyUsedMenu; class RecentlyClosedMenu; class BookmarkModel; class Database; class ShortcutHandler; class HelpDialog;
class QLIBEXSHARED_EXPORT FileImageView : public QMainWindow { Q_OBJECT
friend class FileImageViewAdaptor;
public: explicit FileImageView(QWidget* parent = 0); <кусь > }; <кусь> } // qpdfview
|
|
|
11
|
Qt / Вопросы новичков / Преобразование приложения в библиотеку и добавление в свой проект.
|
: Апрель 27, 2017, 12:24
|
Добрый день. Для своего проекта (GUI к PDFtk и ImageMagic) хотел сделать вьювер файлов. Но нашел готовый qpdfview, который полностью устраивает по функционалу. Решил попробовать его добавить к себе в проект в качестве библиотеки. В проект pdftk необходимые изменения, чтобы получилась либа. Ну точнее, я так думаю, что правильно внес. Откомпилировал (ошибок не обнаружилось). Теперь пытаюсь добавить эту либу в свой проект и получаю ошибку компилятора: Bash g++ -c -m64 -pipe -g -std=gnu++0x -Wall -W -D_REENTRANT -fPIC -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../TestLPdfViewLib -I. -I../TestLPdfViewLib/qpdfview-0.4.16 -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtCore -I. -I. -I/usr/lib64/qt5/mkspecs/linux-g++-64 -o mainwindow.o ../TestLPdfViewLib/mainwindow.cpp ../TestLPdfViewLib/mainwindow.cpp: In constructor 'MainWindow::MainWindow(QWidget*)': ../TestLPdfViewLib/mainwindow.cpp:10:39: error: invalid use of incomplete type 'class qpdfview::FileImageView' fiv = new qpdfview::FileImageView(); ^ In file included from ../TestLPdfViewLib/mainwindow.cpp:1:0: ../TestLPdfViewLib/mainwindow.h:9:7: error: forward declaration of 'class qpdfview::FileImageView' class FileImageView; ^ make: *** [Makefile:577: mainwindow.o] Error 1
Подскажите, что я делаю не так? Исходники во вложении.
|
|
|
12
|
Компиляторы и платформы / Компиляторы / Сборка x86_65-w64-mingw32: ошибки компиляции libstdc++v3
|
: Декабрь 07, 2016, 11:41
|
Добрый день! Пытаюсь собрать 64-хбитный mingw. Для этого использую msys64 и x86_64-6.2.0-release-win32-seh-rt_v5-rev1 Исходники: binutils-2.27 cloog-parma-0.16.1 cloog-ppl-0.15.11 gcc-master gmp-6.1.1 libiconv-1.14 mingw-w64-v5.0.0 mpc-1.0.3 mpfr-3.1.5 ppl-1.2 zlib-1.2.8 iconv-1.14 Собрал все, что необходимо для сборки GCC Bash ZLib cd $ZLib_Source_with_Patchs: zlib/01-zlib-1.2.7-1-buildsys.mingw.patch, zlib/02-no-undefined.mingw.patch, zlib/03-dont-put-sodir-into-L.mingw.patch, zlib/04-wrong-w8-check.mingw.patch, zlib/05-fix-a-typo.mingw.patch, zlib/013-fix-largefile-support.patch ./configure --prefix=/d/mbuild/prerequaries/shared &>congfig.my.log mingw32-make.exe -j4 &>make.my.log mingw32-make.exe install &>install.my.log LibIconv cd $ZLib_Source_with_Patchs: libiconv/0001-compile-relocatable-in-gnulib.mingw.patch, libiconv/0002-fix-cr-for-awk-in-configure.all.patch mkdie build && cd build ../configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/d/mbuild/prerequaries/shared --enable-shared --disable-static CFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include" CXXFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include" CPPFLAGS="-s -O2" LDFLAGS="-pipe -L/mingw64/opt/lib -L/d/mbuild/prerequaries/shared/lib" &>config.my.log mingw32-make.exe -j4 &>make.my.log mingw32-make.exe install &>install.my.log GMP cd $GMP_Source mkdie build && cd build ../configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/d/mbuild/requaries/shared --enable-shared --disable-static --enable-cxx CFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include" CXXFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include" CPPFLAGS='-s -O2 -fexceptions' LDFLAGS="-pipe -L/mingw64/opt/lib -L/d/mbuild/prerequaries/shared/lib" &> config.my.log mingw32-make.exe -j4 &>make.my.log mingw32-make.exe install &>install.my.log PPL cd $PPL_Source mkdie build && cd build ../configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/d/mbuild/requaries/shared --enable-shared --disable-static --enable-nls --enable-threads --disable-debugging --with-gmp=/d/mbuild/requaries/shared --with-cflags='-s -O2' --with-cxxflags='-s -O2' CFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CXXFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CPPFLAGS='-s -O2' LDFLAGS="-pipe -L/mingw64/opt/lib -L/d/mbuild/prerequaries/shared/lib -L/d/mbuild/requaries/shared/lib" &> config.my.log mingw32-make.exe -j4 &>make.my.log mingw32-make.exe install &>install.my.log CLOOG-PPL cd $CLOOG-PPL_Source mkdie build && build ../configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/d/mbuild/requaries/shared --enable-shared --disable-static --with-ppl=/d/mbuild/requaries/shared --with-gmp=/d/mbuild/requaries/shared CFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CXXFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CPPFLAGS='-s -O2' LDFLAGS="-pipe -L/mingw64/opt/lib -L/d/mbuild/prerequaries/shared/lib -L/d/mbuild/requaries/shared/lib" &> config.my.log mingw32-make.exe -j4 &>make.my.log mingw32-make.exe install &>install.my.log MPFR cd $MPFR_Source mkdie build && build ../configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/d/mbuild/requaries/shared --enable-shared --disable-static --with-gmp=/d/mbuild/requaries/shared CFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CXXFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CPPFLAGS='-s -O2' LDFLAGS="-pipe -L/mingw64/opt/lib -L/d/mbuild/prerequaries/shared/lib -L/d/mbuild/requaries/shared/lib" &> config.my.log mingw32-make.exe -j4 &>make.my.log mingw32-make.exe install &>install.my.log MPC cd $MPC_Source mkdie build && build ../configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/d/mbuild/requaries/shared --enable-shared --disable-static --with-gmp=/d/mbuild/requaries/shared --with-mpfr=/d/mbuild/requaries/shared CFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CXXFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CPPFLAGS='-s -O2' LDFLAGS="-pipe -L/mingw64/opt/lib -L/d/mbuild/prerequaries/shared/lib -L/d/mbuild/requaries/shared/lib" &> config.my.log mingw32-make.exe -j4 &>make.my.log mingw32-make.exe install &>install.my.log ISL cd $ISL_Source_with_Patches: isl/isl-0.14.1-no-undefined.patch mkdie build && build ../configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/d/mbuild/requaries/shared --enable-shared --disable-static --with-gmp=/d/mbuild/requaries/shared CFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CXXFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CPPFLAGS='-s -O2' LDFLAGS="-pipe -L/mingw64/opt/lib -L/d/mbuild/prerequaries/shared/lib -L/d/mbuild/requaries/shared/lib" &> config.my.log mingw32-make.exe -j4 &>make.my.log mingw32-make.exe install &>install.my.log MinGW-W64_headers cd Path_to/mingw-w64-mingw-w64-v5/mingw-w64-headers mkdie build && build ../configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/d/mbuild/runtime/w32api/shared --enable-sdk=all --enable-secure-api CFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CXXFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CPPFLAGS='-s -O2' LDFLAGS="-pipe -L/mingw64/opt/lib -L/d/mbuild/prerequaries/shared/lib -L/d/mbuild/requaries/shared/lib" &> config.my.log mingw32-make.exe -j4 &>make.my.log mingw32-make.exe install &>install.my.log MinGW-W64_CRT cd Path_to/mingw-w64-mingw-w64-v5/mingw-w64-crt mkdie build && build ../configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/d/mbuild/runtime/runtime/shared --disable-lib32 --enable-lib64 --enable-wildcard CFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CXXFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CPPFLAGS='-s -O2' LDFLAGS="-pipe -L/mingw64/opt/lib -L/d/mbuild/prerequaries/shared/lib -L/d/mbuild/requaries/shared/lib" &> config.my.log mingw32-make.exe -j4 &>make.my.log mingw32-make.exe install &>install.my.log WinPThreads-v5 cd Path_to/mingw-w64-mingw-w64-v5/mingw-w64-libraries/winpthreads mkdie build && build ../configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/d/mbuild/runtime/winpthreads/shared --enable-shared --disable-static CFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CXXFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include" CPPFLAGS='-s -O2' LDFLAGS="-pipe -L/mingw64/opt/lib -L/d/mbuild/prerequaries/shared/lib -L/d/mbuild/requaries/shared/lib" &> config.my.log mingw32-make.exe -j4 &>make.my.log mingw32-make.exe install &>install.my.log BinUtils NoMUltilibs cd BinUtils_Source with patchs: patches/0001-enable-gold-on.mingw32.patch, patches/0002-check-for-unusual-file-harder.patch, patches/0008-fix-libiberty-makefile.mingw.patch, patches/0009-fix-libiberty-configure.mingw.patch, patches/0110-binutils-mingw-gnu-print.patch, patches/9ac47a4.diff, patches/27aaeda.diff, patches/a93d5cb.diff, patches/fixes-a-problem-recognizing-libraries-created-by-VS.patch mkdie build && build ../configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/d/mbuild/bin/binutils/shared --with-sysroot=/d/mbuild/runtime/shared --disable-multilib --enable-lto --enable-plugins --enable-gold --enable-install-libiberty --with-libiconv-prefix=/d/mbuild/requaries/shared --enable-shared --disable-static --disable-rpath --enable-nls CFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include -I/d/mbuild/runtime/shared/include" CXXFLAGS="-s -O2 -pipe -I/mingw64/opt/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include -I/d/mbuild/runtime/shared/include" CPPFLAGS='-s -O2' LDFLAGS="-pipe -L/mingw64/opt/lib -L/d/mbuild/prerequaries/shared/lib -L/d/mbuild/requaries/shared/lib -L/d/mbuild/runtime/shared/lib" &> config.my.log mingw32-make.exe -j4 &>make.my.log mingw32-make.exe install &>install.my.log GCC NoMUltilibs cd BinUtils_Source with patchs: patches/gcc-4.7-stdthreads.patch, patches/gcc-5.1-iconv.patch, patches/gcc-4.8-libstdc++export.patch, patches/gcc-4.8.2-build-more-gnattools.mingw.patch, patches/gcc-4.8.2-fix-for-windows-not-minding-non-existant-parent-dirs.patch, patches/gcc-4.8.2-windows-lrealpath-no-force-lowercase-nor-backslash.patch, patches/gcc-4.9.1-enable-shared-gnat-implib.mingw.patch, patches/gcc-5.1.0-make-xmmintrin-header-cplusplus-compatible.patch, patches/gcc-5.2-fix-mingw-pch.patch, patches/gcc-5-dwarf-regression.patch, patches/gcc-5.1.0-fix-libatomic-building-for-threads=win32.patch, patches/gcc-6-ktietz-libgomp.patch, patches/gcc-6.1-disable-weak-refs.patch mkdie build && build ../configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/d/mbuild/release/shared --with-sysroot=/mingw64 --disable-multilib --enable-languages=c,c++,objc,obj-c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=win32 --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-libstdcxx-filesystem-ts=yes --disable-isl-version-check --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/d/mbuild/requaries/shared --with-mpc=/d/mbuild/requaries/shared --with-mpfr=/d/mbuild/requaries/shared --with-ppl=/d/mbuild/requaries/shared --disable-ppl-version-check --with-cloog=/d/mbuild/requaries/shared --disable-cloog-version-check --with-isl=/d/mbuild/requaries/shared --with-pkgversion="x86_64-win32-yamah-rev1, Built by MinGW-W64 project" --with-bugurl=http://sourceforge.net/projects/mingw-w64 --enable-shared --disable-static --with-dwarf2 --enable-nls CFLAGS="-s -O2 -pipe -I/d/mbuild/runtime/shared/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include -I/mingw64/opt/include" CXXFLAGS="-s -O2 -pipe -I/d/mbuild/runtime/shared/include -I/d/mbuild/prerequaries/shared/include -I/d/mbuild/requaries/shared/include -I/mingw64/opt/include" CPPFLAGS='-s -O2' LDFLAGS="-pipe -L/d/mbuild/runtime/shared/lib -L/d/mbuild/prerequaries/shared/lib -L/d/mbuild/requaries/shared/lib -L/mingw64/opt/lib" &> config.my.log mingw32-make.exe -j4 BOOT_CFLAGS='-s -O2' BOOT_CPPFLAGS='-s -O2' all-gcc &>make-gcc.my.log mingw32-make.exe install-gcc &>install-gcc.my.log
Сложил все собранные программы в /d/mbuild/release/shared. Хеадеры W32API и winRT сложил в /d/mbuild/release/shared/x86_64-w64-mingw32/ Однако, сборка всего gcc вылетает с ошибками. DOS ../../../../../libstdc++-v3/src/filesystem/dir.cc: In function 'std::experimental::filesystem::v1::__cxx11::_Dir {anonymous}::open_dir(const std::experimental::filesystem::v1::__cxx11::path&, std::experimental::filesystem::v1::directory_options, std::error_code*)': ../../../../../libstdc++-v3/src/filesystem/dir.cc:91:40: error: cannot convert '_WDIR*' to 'DIR*' in initialization if (DIR* dirp = ::opendir(p.c_str())) ^ ../../../../../libstdc++-v3/src/filesystem/dir.cc: In constructor 'std::experimental::filesystem::v1::__cxx11::recursive_directory_iterator::recursive_directory_iterator(const std::experimental::filesystem::v1::__cxx11::path&, std::experimental::filesystem::v1::directory_options, std::error_code*)': ../../../../../libstdc++-v3/src/filesystem/dir.cc:249:38: error: cannot convert '_WDIR*' to 'DIR*' in initialization if (DIR* dirp = ::opendir(p.c_str())) ^ ../../../../../libstdc++-v3/src/filesystem/path.cc: In member function 'std::pair<const std::__cxx11::basic_string<wchar_t>*, long long unsigned int> std::experimental::filesystem::v1::__cxx11::path::_M_find_extension() const': ../../../../../libstdc++-v3/src/filesystem/path.cc:302:10: error: cannot convert 'const string_type* {aka const std::__cxx11::basic_string<wchar_t>*}' to 'const string* {aka const std::__cxx11::basic_string<char>*}' in assignment s = &_M_pathname; ^~~~~~~~~~~
и подобные. Полный лог сборки GCC в make-all.my.log во вложении. Как побороть ошибку? Интуитивно понимаю, что причина в том, что где-то что-то не продефайнено, или не проинклюжено, или конфигуре криво выполнился. Но что делать - не знаю.
|
|
|
13
|
Qt / Установка, сборка, отладка, тестирование / Re: Статическая сборка Qt 5.7 дебаг и релиз с MySQL (ViSual Studio)
|
: Октябрь 17, 2016, 11:24
|
Пересобрал Visual Studio 2015 Shared x86 DOS ..\..\Src\Shared\x86\Src\configure.bat -shared -debug-and-release -platform win32-msvc2015 -c++std c++11 -prefix "..\..\..\..\..\Qt\5.7\msvc2015_shared" -opensource -confirm-license -nomake examples -nomake tests -make tools -qml-debug -opengl dynamic -system-proxies -make libs -qt-pcre -qt-libpng -qt-libjpeg -qt-zlib -qt-freetype -plugin-sql-sqlite -plugin-sql-odbc -plugin-sql-mysql -openssl OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32" OPENSSL_LIBS_RELEASE="-llibeay32MD -lssleay32MD" OPENSSL_LIBS_DEBUG="-llibeay32MDd -lssleay32MDd" -l libmysql -I "c:\Lib\include\mysql" -I "c:\Lib\include\openssl" -L "c:\Lib\Lib32_VS2015\MySQL" -L "c:\Lib\Lib32_VS2015\OpenSSL" -L "c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib"
Shared x64 DOS ..\..\Src\Shared\x64\Src\configure.bat -shared -debug-and-release -platform win32-msvc2015 -c++std c++11 -prefix "..\..\..\..\..\Qt\5.7\msvc2015_x64_shared" -opensource -confirm-license -nomake examples -nomake tests -make tools -qml-debug -opengl dynamic -system-proxies -make libs -qt-pcre -qt-libpng -qt-libjpeg -qt-zlib -qt-freetype -plugin-sql-sqlite -plugin-sql-odbc -plugin-sql-mysql -openssl OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32" OPENSSL_LIBS_RELEASE="-llibeay32MD -lssleay32MD" OPENSSL_LIBS_DEBUG="-llibeay32MDd -lssleay32MDd" -l libmysql -I "c:\Lib\include\mysql" -I "c:\Lib\include\openssl" -L "c:\Lib\Lib64_VS2015\MySQL" -L "c:\Lib\Lib64_VS2015\OpenSSL" -L "c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64"
После сборки и установки во всех файлах $Qt_Profile\lib\*d.prl заменил libmysql на libmysqld Где libmysqld - дебаг версия библиотеки mysqlclient (Не путать с библиотекой libmysqld.lib, которая появляется при сборке MySQL) Исправил в файле Qt\Src\qtbase\mkspecs\common\msvc-desktop.conf QMAKE_CFLAGS_RELEASE = -O2 -MD QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi QMAKE_CFLAGS_DEBUG = -Zi -MDd на QMAKE_CFLAGS_RELEASE = -O2 -MT QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi QMAKE_CFLAGS_DEBUG = -Zi -MTd Static x86 DOS ..\..\Src\Static\x86\Src\configure.bat -static -debug-and-release -platform win32-msvc2015 -c++std c++11 -prefix "..\..\..\..\..\Qt\5.7\msvc2015_static" -opensource -confirm-license -nomake examples -nomake tests -make tools -qml-debug -opengl dynamic -system-proxies -make libs -qt-pcre -qt-libpng -qt-libjpeg -qt-zlib -qt-freetype -qt-sql-sqlite -qt-sql-odbc -qt-sql-mysql -openssl -openssl-linked OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32" OPENSSL_LIBS_RELEASE="-llibeay32MT -lssleay32MT" OPENSSL_LIBS_DEBUG="-llibeay32MTd -lssleay32MTd" -l mysqlclient -I "c:\Lib\include\mysql" -I "c:\Lib\include\openssl" -L "c:\Lib\Lib32_VS2015\MySQL" -L "c:\Lib\Lib32_VS2015\OpenSSL" -L "c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib"
Static x64 DOS ..\..\Src\Static\x64\Src\configure.bat -static -debug-and-release -platform win32-msvc2015 -c++std c++11 -prefix "..\..\..\..\..\Qt\5.7\msvc2015_x64_static" -opensource -confirm-license -nomake examples -nomake tests -make tools -qml-debug -opengl dynamic -system-proxies -make libs -qt-pcre -qt-libpng -qt-libjpeg -qt-zlib -qt-freetype -qt-sql-sqlite -qt-sql-odbc -qt-sql-mysql -openssl -openssl-linked OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32" OPENSSL_LIBS_RELEASE="-llibeay32MT -lssleay32MT" OPENSSL_LIBS_DEBUG="-llibeay32MTd -lssleay32MTd" -l mysqlclient -I "c:\Lib\include\mysql" -I "c:\Lib\include\openssl" -L "c:\Lib\Lib64_VS2015\MySQL" -L "c:\Lib\Lib64_VS2015\OpenSSL" -L "c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64"
После сборки и установки во всех файлах $Qt_Profile\lib\*d.prl заменил mysqlclient на mysqlclientd Где mysqlclientd - дебаг версия библиотеки mysqlclient
|
|
|
15
|
Qt / Установка, сборка, отладка, тестирование / [Решено:] Статическая сборка Qt 5.7 дебаг и релиз с MySQL (ViSual Studio)
|
: Сентябрь 30, 2016, 19:03
|
Добрый день! Цель: сделать статическую сборку Qt, чтобы ее можно было использовать на других машинах без дополнительной установки MySQL и OpenSSL. Причина такого радикализма имеется. Есть ПК под управлением Windows XP с установленным MySQl-ODBC Connector 3.5. MySQL клиент, сервер и коннектор 5х версий сегфолятся. Поэтому любое приложение с libmysql не работает. В лучшем случае драйвер просто не загружается. Решения два: удалить старый драйвер, но тогда перестанут работать программы которые его используют; использовать либу mysqlclient. Подготовил среду для сборки. Собрал статически релизную и дебажную версию OpenSSL, релизную и дебажную версию MySQL текущей версией Visual Studio OpenSSL. Исправил файл mkspec для Студии для статической сборки. Выполняю конфигурацию DOS .\configure.bat -static -debug-and-release -platform win32-msvc2015 -c++std c++11 -prefix "E:\Qt\msvc2015_static" -opensource -confirm-license -make examples -make tests -make tools -qml-debug -opengl desktop -make libs -qt-pcre -qt-libpng -qt-libjpeg -qt-zlib -qt-freetype -qt-sql-sqlite -qt-sql-odbc -qt-sql-mysql -openssl -openssl-linked OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32" OPENSSL_LIBS_RELEASE="-lssleay32S -llibeay32S" OPENSSL_LIBS_DEBUG="-lssleay32SD -llibeay32SD" -I "c:\MySQL32\mysql-5.7.14\include" -I "e:\OpenSSL_x32\include" -L "d:\MySQL\lib" -L "e:\OpenSSL_x32\lib" -L "c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib" -l mysqlclient
Но nmake вылетает с ошибкой LNK2019 при попытке слинковать дебаг-версию Qt с mysqlclient.lib (релиз). Ожидается значение уровня дебага 2, а в либе стоит 0. Если заменить mysqlclient.lib дебажной версией, то ошибка повторяется только уже на этапе сборки релизной части тулкита. Ожидается значение 0, а в либе не 0. Как сконфигурировать так, чтобы при сборке релизной версии Qt бралась mysqlclient.lib релизная, а при сборке дебажной версии Qt - mysqlclient.lib дебажная? Заранее благодарю.
|
|
|
|
|