Russian Qt Forum
Ноябрь 23, 2024, 02:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 ... 80 81 [82] 83 84 ... 88   Вниз
  Печать  
Автор Тема: Создаю библиотеку для работы с последовательными портами. [УШЕЛ ИЗ ПРОЕКТА].  (Прочитано 785134 раз)
Pavel_
Новичок

Offline Offline

Сообщений: 10


Просмотр профиля
« Ответ #1215 : Февраль 14, 2015, 14:11 »

Цитировать
Результат: сделал статическую сборку Qt, отдельно статически собрал qtserialport, распихал результаты сборки qtserialport по нужным каталогам статической сборки Qt, на первый взгляд все работает, но нужно еще потестить. И осознать ))).

Pavel_, ну и как впечатления от статической сборки qtserialport?
Подскажите, пожалуйста, как вам это удалось.
.................(далее по тексту)...................

В статике все работает. Порядок действий ничем не отличается от указанного в сообщении от "Ноябрь 06, 2014, 16:22" породившего вопрос. Общемногоразописанным способом делаем статическую сборку Qt. Отдельно статически - еще раз спасибо "Hellraiser" http://www.prog.org.ru/topic_9537_1200.html, сам я не додумался - собираем QSerialPort, результат копируем в каталог общей статической сборки Qt. Для себя сохранил напоминание в виде текстового файла, который и прилагаю. На вопросы отвечу, хотя из того что сделано ничего моего практически и нет.

У меня Qt 5.2.1, а у "kit" 5.4.0, поэтому прошу "kit" также отписаться по результатам.

С уважением!
« Последнее редактирование: Февраль 14, 2015, 21:06 от Pavel_ » Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #1216 : Март 09, 2015, 23:53 »

Astra Linux 1.10, Qt 5.3.0. После развертывания системы и попытки собрать qbs проект с QSerialPort получаю при разборе qbs:
"Module Qt/serialport could not be loaded", что странно ибо в Windows вроде этот модуль шёл в стандартной поставке.
Дальше пытаюсь собрать qserialport самостоятельно в соответствии с https://qt-project.org/wiki/QtSerialPort.
Качаю соответствующий архив. После make получаю - qserialportglobal.h - No such file or directory
Что-бы это значило?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1217 : Март 10, 2015, 22:12 »

Цитировать
"Module Qt/serialport could not be loaded"
А что, в репозиториях астры нет пакета QtSerialPort?

Но если сам Qt ставится не из реп, а из инсталлятора - то там должен быть QtSerialPort (хотя не уверен, нужно проверять тебе самому Улыбающийся ).
Да и использовать лучше тогда сразу Qt 5.4.1 а не старье.

Цитировать
Качаю соответствующий архив.
...
Что-бы это значило?

Очевидно, что что-то делаешь не так..  Улыбающийся

 
Записан

ArchLinux x86_64 / Win10 64 bit
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #1218 : Март 10, 2015, 23:05 »

А что, в репозиториях астры нет пакета QtSerialPort?
Как проверить?
Код
Bash
sudo apt-get install QtSerialPort
E: Unable to found QtSerialPort
 

Но если сам Qt ставится не из реп, а из инсталлятора - то там должен быть QtSerialPort (хотя не уверен, нужно проверять тебе самому Улыбающийся ).
Как проверить?
Код
Bash
xokc@astra-client:/usr/lib/x86_64-linux-gnu$ ls libQt5*.so.5.3.0
libQt5CLucene.so.5.3.0             libQt5Multimedia.so.5.3.0         libQt5Svg.so.5.3.0
libQt5Concurrent.so.5.3.0          libQt5MultimediaWidgets.so.5.3.0  libQt5Test.so.5.3.0
libQt5Core.so.5.3.0                libQt5Network.so.5.3.0            libQt5WebKit.so.5.3.0
libQt5DBus.so.5.3.0                libQt5OpenGL.so.5.3.0             libQt5WebKitWidgets.so.5.3.0
libQt5Declarative.so.5.3.0         libQt5PrintSupport.so.5.3.0       libQt5Widgets.so.5.3.0
libQt5DesignerComponents.so.5.3.0  libQt5Qml.so.5.3.0                libQt5X11Extras.so.5.3.0
libQt5Designer.so.5.3.0            libQt5Quick.so.5.3.0              libQt5Xml.so.5.3.0
libQt5Gui.so.5.3.0                 libQt5Script.so.5.3.0
libQt5Help.so.5.3.0                libQt5Sql.so.5.3.0
 

libQt5SerialPort или чего-нибудь подобного не вижу. Аналогично, нет ничего подобного и в /usr/include/x86_64-linux-gnu/qt5:
Код
Bash
root@astra-client:/usr/include/x86_64-linux-gnu/qt5# ls
QtConcurrent  QtDBus  QtNetwork  QtOpenGLExtensions  QtPrintSupport  QtSql   QtWidgets
QtCore        QtGui   QtOpenGL   QtPlatformSupport   QtSolutions     QtTest  QtXml
 

Да и использовать лучше тогда сразу Qt 5.4.1 а не старье.
У меня сертифицированная ОС - я не могу, к сожалению, позволить себе "просто так" качать что-нибудь более новое.

Очевидно, что что-то делаешь не так..  Улыбающийся
Как сделать так, как надо? После qmake получаю следующее:
Код
Bash
g++ -c -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -D_FORTIFY_SOURCE=2 -O2 -fvisibility=hidden -fvisibility-inlines-hidden -std=c++0x -fno-exceptions -Wall -W -D_REENTRANT -fPIC -DQT_NO_MTDEV -DLINK_LIBUDEV -DQT_BUILD_SERIALPORT_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I/home/xokc/test/qt-qtserialport/src/serialport -I/home/xokc/test/qt-qtserialport/src/serialport -I/home/xokc/test/qt-qtserialport/include -I/home/xokc/test/qt-qtserialport/include/QtSerialPort -I../../include -I../../include/QtSerialPort -I/home/xokc/test/qt-qtserialport/include/QtSerialPort/5.3.0 -I/home/xokc/test/qt-qtserialport/include/QtSerialPort/5.3.0/QtSerialPort -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore/5.3.0 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore/5.3.0/QtCore -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I.moc -I. -o .obj/qserialport.o /home/xokc/test/qt-qtserialport/src/serialport/qserialport.cpp
In file included from /home/xokc/test/qt-qtserialport/src/serialport/qserialport.cpp:45:0:
/home/xokc/test/qt-qtserialport/src/serialport/qserialport.h:48:44: fatal error: QtSerialPort/qserialportglobal.h: Can't found file or directory
compilation terminated.
make[2]: *** [.obj/qserialport.o] Error 1
make[2]: Leaving directory `/home/xokc/test/build/src/serialport'

make[1]: *** [sub-serialport-make_first] Error 2
make[1]: Leaving directory `/home/xokc/test/build/src'
make: *** [sub-src-make_first] Error 2
То есть ищется QtSerialPort/qserialportglobal.h, которого в Include путях и нет. Куда дальше-то рыть?
Записан
kit
Гость
« Ответ #1219 : Март 11, 2015, 10:44 »

У меня Qt 5.2.1, а у "kit" 5.4.0, поэтому прошу "kit" также отписаться по результатам.

Прошу прощения за долгое молчание!
Отчитываюсь по результатам статической сборки QSerialPort.
Делаю все по пункту 3 вашей инструкции Результат статической сборки.txt, нигде не отклоняясь.
Получаю ошибки после запуска mingw32-make.
Файл с текстом брани, которую мне выплевывает командная строка, прилагаю.
Кажется, не находит файл qserialport.o. Да и не создается этот файл почему-то в процессе сборки.
Может, тут что-то простое, не знаю. Хотелось бы разобраться. Раз у людей получилось.

Пока пользуюсь динамическим QSerialPort.
Еще неплохо себя показывает библиотека QExtSerialPort-1.2rc https://code.google.com/p/qextserialport/wiki/Downloads?tm=2.
Легко и просто подключается в виде исходников, нет проблем.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1220 : Март 11, 2015, 11:39 »

Цитировать
E: Unable to found QtSerialPort

Можешь поискать в пакетах от дистра.

Хотя я вообще не понимаю всех этих астр, и прочих "росеянских ОС", мучайся с ними сам, ничем помочь не могу. Улыбающийся

Цитата: xokc
Как проверить?

Имелось ввиду использование инсталлятора.. Проверить, есть ли аддон QtSerialPort в инсталляторе с их (qt.io) сайта.. Но раз ты говоришь что:

Цитата: xokc
У меня сертифицированная ОС - я не могу, к сожалению, позволить себе "просто так" качать что-нибудь более новое.

Значит эта тема снимается.

Цитата: xokc
То есть ищется QtSerialPort/qserialportglobal.h, которого в Include путях и нет. Куда дальше-то рыть?

А qmake для какого файла делаешь? Нужно делать для корневого qtserialport.pro.
Лучше всего собрать QtSerialPort с помощью креатора (там, на английской вики написано как). Только не нужно прописывать цель "make install", а выполнить ее вручную из теневой директории сборки через sudo.

И откуда берешь исходники?
« Последнее редактирование: Март 11, 2015, 11:41 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Phoenix
Гость
« Ответ #1221 : Март 11, 2015, 14:01 »

Xokc, поправь в некоторых заголовочных файлах #include <...> на #include "..." и вместо системных путей укажи относительные пути. Библиотека пытается найти свои заголовочные файлы в системных каталогах - это хорошо когда заголовочные файлы устанавливаются пакетом и плохо если все вручную. В принципе, можно еще закинуть заголовочные файлы в те пути что ожидаются. Я для астры 1.9 собирал, работает.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1222 : Март 11, 2015, 14:07 »

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

Нене.. Что-то делали неправильно.. Все должно собраться без танцев..
Записан

ArchLinux x86_64 / Win10 64 bit
Phoenix
Гость
« Ответ #1223 : Март 11, 2015, 14:15 »

Kuzulis, я всегда руками собираю в linux и windows, т.к. Qt4 и все время приходится пути поправлять. Правда я не сильно часто новую библиотеку собираю - раз в полгода.
В качестве примера файл qserialport.h, в нем:
#include <QtSerialPort/qserialportglobal.h> - это по умолчанию.
#include "qserialportglobal.h" - вот так работает.
« Последнее редактирование: Март 11, 2015, 14:20 от Phoenix » Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #1224 : Март 11, 2015, 14:52 »

Можешь поискать в пакетах от дистра.
Спасибо, поискал и нашёл Улыбающийся.

Код
DOS
Package: libqt5serialport5
Source: qtserialport-opensource-src
Version: 5.3.0-1
Architecture: amd64
Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Installed-Size: 138
Pre-Depends: multiarch-support
Depends: libc6 (>= 2.2.5), libqt5core5a (>= 5.2.0), libstdc++6 (>= 4.1.1), libudev0 (>= 0.140)
Multi-Arch: same
Homepage: http://qt-project.org/
Priority: optional
Section: libs
Filename: pool/main/q/qtserialport-opensource-src/libqt5serialport5_5.3.0-1_amd64.deb
Size: 32718
SHA256: a0c789655f09ce93449ea1e4a2fafc7756642d7acd239697f8747dd9cea22784
SHA1: 131fb70a369f24b706e6cc5f18c923eeb5570fe4
MD5sum: 35c7ea305a6ea95cecac24f87113434c
Description: Qt 5 serial port support
Qt is a cross-platform C++ application framework. Qt's primary feature
is its rich set of widgets that provide standard GUI functionality.
.
This package includes the library to use serial ports from within Qt 5.
Description-md5: 495baaf3e432acf5b4e4136a5d0e645a
Как мне его поставить, так (под рукой системы нет, проверить сам не могу)?
Код
Bash
sudo apt-get install libqt5serialport5

А qmake для какого файла делаешь? Нужно делать для корневого qtserialport.pro.
qmake делаю находясь в папке build для файла ../qt-serialport/qtserialport.pro

Лучше всего собрать QtSerialPort с помощью креатора (там, на английской вики написано как).
Пробовал - результат абсолютно аналогичный

И откуда берешь исходники?
Отсюда: https://qt.gitorious.org/qt/qtserialport/source/360767286dfc77a08ac28bf03f35b289fd37536d:

Поправь в некоторых заголовочных файлах #include <...> на #include "..." и вместо системных путей укажи относительные пути.
Этот "порочный" путь я, конечно, пройду если совсем уж припечёт. Но хотелось бы с бубном плясать по-минимуму Улыбающийся.
« Последнее редактирование: Март 11, 2015, 15:02 от xokc » Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1225 : Март 11, 2015, 16:05 »

Цитировать
Как мне его поставить, так (под рукой системы нет, проверить сам не могу)?

Понятия не имею.

Цитировать
Пробовал - результат абсолютно аналогичный

Да не может быть... т.к. все перепроверялось сто-пицот раз.
Записан

ArchLinux x86_64 / Win10 64 bit
Pavel_
Новичок

Offline Offline

Сообщений: 10


Просмотр профиля
« Ответ #1226 : Март 11, 2015, 17:19 »

У меня Qt 5.2.1, а у "kit" 5.4.0, поэтому прошу "kit" также отписаться по результатам.
Прошу прощения за долгое молчание!
Отчитываюсь по результатам статической сборки QSerialPort. Делаю все по пункту 3 вашей инструкции Результат статической сборки.txt, нигде не отклоняясь. Получаю ошибки после запуска mingw32-make............

Доброго времени суток, "kit"!
Подробнее отписал в личку. Повторюсь: QSerialPort нормально статически собирается для Qt 5.4.0.
Кажется бывали ошибки при использовании системного "cmd.exe" вместо родного "Qt 5.4 for Desktop (MinGW 4.9 32 bit)", вроде для второго уже настроены все переменные окружения.
Может вы запускаетесь не из каталога "qtserialport-build", может еще что...

Лог компиляции и свои действия прилагаю в архиве - вдруг поможет чем. Там же откомпилированные для статики компоненты qtserialport-build.rar (не zip), их надо скопировать себе в статическую сборку Qt и все должно работать.
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #1227 : Март 11, 2015, 17:21 »

Цитировать
Пробовал - результат абсолютно аналогичный
Да не может быть... т.к. все перепроверялось сто-пицот раз.
Ну не знаю... Скриншот приложить, видео записать, зуб дать Улыбающийся?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1228 : Март 11, 2015, 19:45 »

Цитата: xokc
Ну не знаю... Скриншот приложить, видео записать, зуб дать Улыбающийся?
Значит чего-то не хватает.. Возможно перла или еще чего недоустановилось в системе.. Я хз..
Записан

ArchLinux x86_64 / Win10 64 bit
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #1229 : Март 11, 2015, 20:48 »

Ну, собственно победил. Если кому интересно для сборки QSerialPort нужно:
apt-get install qtbase5-private
 - это для установки приватных h файлов, иначе будут ошибки на отсутствующий qringbuffer_p.h
apt-get install libudev-dev
- это для установки h файлов от libudev (сам libudev уже стоял из коробки)
Таким же образом можно было и сразу libqt5serialport5 с libqt5serialport5-dev поставить без бубнов.

Но вот qbs в QtCreator продолжает ругаться: Module Qt/serialport could not be loaded.
Какие предложения?

А тут же сам себе и отвечу - само рассосалось Улыбающийся Нужно было QtCreator перезапустить после этого. Всё, astra побеждена - спасибо.
« Последнее редактирование: Март 11, 2015, 20:56 от xokc » Записан
Страниц: 1 ... 80 81 [82] 83 84 ... 88   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.208 секунд. Запросов: 23.