Название: Сборка BNC-2.12
Отправлено: tornado от Апрель 27, 2016, 21:22
Добрый день, уважаемые програмисты. Прошу меня очень сильно не пинать, ибо зайти сюда и просить помощи меня заставила полная безвыходность. Если вкратце, то проблема в следующем. Есть исходник, который судя по описанию авторов можно инужно собирать при помощи QT-4.8.7. Этот исходник лежит в свободном доступе https://igs.bkg.bund.de/root_ftp/NTRIP/software/bnc-2.12.1-source.zip. Согласно приложенной инструкции, скачал QT-4.8.7 и поставил на Linux Fedora 19. Вроде стало без косяков. Далее начал собирать саму програмку и получил вот такой результат (вывод собственно ошибки): make[1]: Entering directory `/home/BNC-2.12.1/src' g++ -c -pipe -Wall -W -D_REENTRANT -D_TTY_POSIX_ -DUSE_PPP_SSR_I -DQT_WEBKIT -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_SVG_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.8.7/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.8.7/include/QtCore -I/usr/local/Trolltech/Qt-4.8.7/include/QtNetwork -I/usr/local/Trolltech/Qt-4.8.7/include/QtGui -I/usr/local/Trolltech/Qt-4.8.7/include/QtSvg -I/usr/local/Trolltech/Qt-4.8.7/include/QtWebKit -I/usr/local/Trolltech/Qt-4.8.7/include -I. -I../newmat -IRTCM3 -IRTCM3/clock_and_orbit -IRTCM -I../qwt -I../qwtpolar -IPPP_SSR_I -I.moc/release -o .obj/release/bncgetthread.o bncgetthread.cpp g++ -c -pipe -Wall -W -D_REENTRANT -D_TTY_POSIX_ -DUSE_PPP_SSR_I -DQT_WEBKIT -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_SVG_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.8.7/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.8.7/include/QtCore -I/usr/local/Trolltech/Qt-4.8.7/include/QtNetwork -I/usr/local/Trolltech/Qt-4.8.7/include/QtGui -I/usr/local/Trolltech/Qt-4.8.7/include/QtSvg -I/usr/local/Trolltech/Qt-4.8.7/include/QtWebKit -I/usr/local/Trolltech/Qt-4.8.7/include -I. -I../newmat -IRTCM3 -IRTCM3/clock_and_orbit -IRTCM -I../qwt -I../qwtpolar -IPPP_SSR_I -I.moc/release -o .obj/release/bncwindow.o bncwindow.cpp In file included from bncwindow.cpp:60:0: bncsslconfig.h:8:29: error: invalid use of incomplete type 'class QSslConfiguration' class bncSslConfig : public QSslConfiguration { ^ In file included from /usr/local/Trolltech/Qt-4.8.7/include/QtNetwork/qabstractnetworkcache.h:48:0, from /usr/local/Trolltech/Qt-4.8.7/include/QtNetwork/QtNetwork:10, from bncgetthread.h:29, from bncwindow.h:31, from bncwindow.cpp:44: /usr/local/Trolltech/Qt-4.8.7/include/QtNetwork/qnetworkrequest.h:56:7: error: forward declaration of 'class QSslConfiguration' class QSslConfiguration; ^ make[1]: *** [.obj/release/bncwindow.o] Error 1 make[1]: Leaving directory `/home/BNC-2.12.1/src' make: *** [sub-src-make_default-ordered] Error 2
Поскольку мои многочисленные письма к разработчикам остались без ответа, отсюда вопрос - как с этим можно бороться? Сам я по своей профессии не програмист, поэтому буду весьма признателен за любую помощь, если такая будет оказана.
Название: Re: Сборка BNC-2.12
Отправлено: Old от Апрель 27, 2016, 21:28
Добавьте в файл bncsslconfig.h в начало файла сразу за идущими там include строку: C++ (Qt) #include <QSslConfiguration>
Название: Re: Сборка BNC-2.12
Отправлено: tornado от Апрель 27, 2016, 21:41
Добавьте в файл bncsslconfig.h в начало файла сразу за идущими там include строку:
Попробовал. К сожалению не помогает.
Название: Re: Сборка BNC-2.12
Отправлено: Alex Custov от Апрель 27, 2016, 22:30
Это значит, что Qt собран без поддержки SSL. Где эта инструкция?
Название: Re: Сборка BNC-2.12
Отправлено: tornado от Апрель 27, 2016, 22:57
Это значит, что Qt собран без поддержки SSL. Где эта инструкция?
Вот собственно инструкция по установке.
Название: Re: Сборка BNC-2.12
Отправлено: Alex Custov от Апрель 28, 2016, 10:29
ты собирал Qt вручную? Тогда почти наверняка поддержка openssl была отключена. Нужно его пересобрать заново, добавив к другим ключам ./configure ключ -openssl: ./configure <ключи из readme> -openssl Кстати говоря я сомневаюсь, что им для компиляции нужна именно версия 4.8.7. Думаю что можно попробовать использовать системный Qt, который точно собран с openssl. Установи пакеты для Qt, как-то так https://ask.fedoraproject.org/en/question/36411/how-to-install-qt-in-fedora-no-valid-kit-fund-when-create-project/ и попробуй.
Название: Re: Сборка BNC-2.12
Отправлено: lit-uriy от Апрель 28, 2016, 11:16
Поддержку SSL можно проверить с помощью штатных примеров Qt: network/securesocketclient
Название: Re: Сборка BNC-2.12
Отправлено: tornado от Апрель 28, 2016, 21:39
ты собирал Qt вручную? Тогда почти наверняка поддержка openssl была отключена. Нужно его пересобрать заново, добавив к другим ключам ./configure ключ -openssl: ./configure <ключи из readme> -openssl Кстати говоря я сомневаюсь, что им для компиляции нужна именно версия 4.8.7. Думаю что можно попробовать использовать системный Qt, который точно собран с openssl. Установи пакеты для Qt, как-то так https://ask.fedoraproject.org/en/question/36411/how-to-install-qt-in-fedora-no-valid-kit-fund-when-create-project/ и попробуй. Да. Qt я собирал вручную. И конечно же следуя дурацкой инструкции (чёртовы буржуины) без ключа -openssl. Попробовал его добавить, но тоже не получилось. Насколько я понял не хватало каких то библиотек для Openssl. Подгрузил какие смог найти библиотеки для Openssl и процесс пошел, но тоже не совсем удачно. Все равно чё то не хватает: gmake[1]: Entering directory `/home/Archive/QT_4.8.7/qt-everywhere-opensource-src-4.8.7/src/network' g++ -c -include .pch/release-shared/QtNetwork -pipe -O2 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_BUILD_NETWORK_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_HAVE_SSE3 -DQT_HAVE_SSSE3 -DQT_HAVE_SSE4_1 -DQT_HAVE_SSE4_2 -DQT_HAVE_AVX -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/linux-g++ -I. -I../../include/QtCore -I../../include -I../../include/QtNetwork -I.rcc/release-shared -Ikernel -I.moc/release-shared -o .obj/release-shared/qhttp.o access/qhttp.cpp In file included from access/qhttp.cpp:3153:0: .moc/release-shared/moc_qhttp.cpp: In static member function 'static void QHttp::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)': .moc/release-shared/moc_qhttp.cpp:101:22: error: 'class QHttp' has no member named 'sslErrors' case 10: _t->sslErrors((*reinterpret_cast< const QList<QSslError>(*)>(_a[1]))); break; ^ .moc/release-shared/moc_qhttp.cpp:103:22: error: 'class QHttp' has no member named 'ignoreSslErrors' case 12: _t->ignoreSslErrors(); break; ^ .moc/release-shared/moc_qhttp.cpp:110:32: error: 'class QHttpPrivate' has no member named '_q_slotEncryptedBytesWritten' case 19: _t->d_func()->_q_slotEncryptedBytesWritten((*reinterpret_cast< qint64(*)>(_a[1]))); break; ^ .moc/release-shared/moc_qhttp.cpp: At global scope: .moc/release-shared/moc_qhttp.cpp:229:51: error: no 'void QHttp::sslErrors(const QList<QSslError>&)' member function declared in class 'QHttp' void QHttp::sslErrors(const QList<QSslError> & _t1) ^ gmake[1]: *** [.obj/release-shared/qhttp.o] Error 1 gmake[1]: Leaving directory `/home/Archive/QT_4.8.7/qt-everywhere-opensource-src-4.8.7/src/network' gmake: *** [sub-network-make_default-ordered] Error 2
В конце концов, плюнул и последовал Вашему совету установить системный Qt. Кстати он оказался версии 4.8.6. С его помощью удалось скомпилировать программку. Так что проблема решена. Всем огромное спасибо, особенно Алексу Кустову (надеюсь правильно написал). Дальше потихонечку разберусь чего там не хватает для ручной сборки Qt в моем случае.
|