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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: работа с компортом(установка qtserialport)  (Прочитано 11375 раз)
koldun90
Крякер
****
Offline Offline

Сообщений: 345


Просмотр профиля
« : Февраль 28, 2015, 10:13 »

здравствуйте нужно считывать данные с компорта
для этого решил использовать qtserialport
1)скачал архив вот остюда
http://qt-project.org/wiki/QtSerialPort_Russian
2) в архиве лежала папка qt-qtseriaport
я распаковал ее в корень /qt-qtseriaport
3)затем переименовал   /qt-qtseriaport  в  /qtseriaport
4)создал папку в корне /serialport-build
5)перешел в нее cd /serialport-build
5) потом выполнил команду qmake ../qtserialport/qtserialport.pro

но консоль выдала следующее сообщение

Код:
qtserialport.pro:1: Unknown test function: lessThan
Project LOAD(): Feature qt_parts cannot be found.  
вопрос как все таки установить qtserialport
использую qt 4.8
linux

прилагаю библиотеку...
« Последнее редактирование: Февраль 28, 2015, 10:21 от koldun90 » Записан
Fat-Zer
Гость
« Ответ #1 : Февраль 28, 2015, 11:45 »

хз, откуда ты взял этот архив... склонируй из гит'а. для qt4 подойдёт ветка stable:
git clone git://gitorious.org/qt/qtserialport.git -b stable
и будет счастье...
Записан
koldun90
Крякер
****
Offline Offline

Сообщений: 345


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

ссылку можно?

вот отсюда чтоли...
https://qt.gitorious.org/qt/qtserialport/commits/19da18b96897c7d0b9dce2dd589d0135b397005e

скачал все тоже самое...
а я все правильно ставлю?
вот архив со страницы
https://qt.gitorious.org/qt/qtserialport/commits/19da18b96897c7d0b9dce2dd589d0135b397005e
кнопка в правом верхнем углу "download" скачивал

« Последнее редактирование: Февраль 28, 2015, 12:09 от koldun90 » Записан
koldun90
Крякер
****
Offline Offline

Сообщений: 345


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

содержимое файла qtserialport.pro

Код:
lessThan(QT_MAJOR_VERSION, 5) {
    TEMPLATE = subdirs
    SUBDIRS = src examples tests
    CONFIG += ordered

    !infile($$OUT_PWD/.qmake.cache, QTSERIALPORT_PROJECT_ROOT) {
        system("echo QTSERIALPORT_PROJECT_ROOT = $$PWD >> $$OUT_PWD/.qmake.cache")
        system("echo QTSERIALPORT_BUILD_ROOT = $$OUT_PWD >> $$OUT_PWD/.qmake.cache")
    }
} else {
    load(qt_parts)
}

и ругается на
Код:
qtserialport.pro:1: Unknown test function: lessThan
Project LOAD(): Feature qt_parts cannot be found. 
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


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

Не не.. Начиная с Qt5.5 будет две ветки:

* одна для Qt4 - это qt4-dev: https://qt.gitorious.org/qt/qtserialport/source/8088ad9a3b3801e4c39fbf7e6fd100ab64c8151b:
* другая для Qt5 (это обычные ветки 5.4, 5.5 и прочие).

Ветки stable вообще нет (от нее уже как сто-пиццот лет тому назад отказались).

* Если нужно использовать для Qt5 - то нужно брать любую желаемую из 5.4.х (сейчас это 5.4.1). Если же хочется попробовать
плюшки из еще не вышедшей следующей версии  - то нужно брать из 5.5.

* Если нужно использовать для Qt4 - то берем из qt4-dev. Здесь всегда будет только одна эта ветка (по аналогии как с Qt4).

По поводу сообщения:
Цитировать
qtserialport.pro:1: Unknown test function: lessThan

- это вообще непонятное что-то.. Возможно используется какое-то неправильное Qt4.8 (или не-доустановленное).

В любом случае, в qt4-dev такого "lessThan" уже нет и оно должно собраться без проблем.

Собирать лучше всего используя QtCreator - для новичков - это самое то, т.к. там трудно ошибиться с
установкой и выбором нужных переменных окружения, компиляторов и пр. (в Вики об этом сказано на англицкой странице).
« Последнее редактирование: Февраль 28, 2015, 14:25 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
koldun90
Крякер
****
Offline Offline

Сообщений: 345


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

я открыл в креаторе проект /qt-qtserialport/qtserialport.pro
предварительно очитсил затем собрал все собралось ошибок нет а как использовать qtserialport в моем проекте(моей программе)?

качал по ссылке
 https://qt.gitorious.org/qt/qtserialport/source/8088ad9a3b3801e4c39fbf7e6fd100ab64c8151b


хотя проект собрался но не запускается пишет при запуске
Код:
/build-qtserialport-Desktop-Debug/tests/auto/qserialportinfo/tst_qserialportinfo: error while loading shared libraries: 
libQtSerialPort.so.1: cannot open shared object file: No such file or directory
« Последнее редактирование: Февраль 28, 2015, 14:46 от koldun90 » Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


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

Цитировать
а как использовать qtserialport в моем проекте(моей программе)?

* Открыть консоль/терминал
* Найти теневую директорию куда QtCreator собрал библиотеку (по идее должно быть две
директории, что-то типа Debug и Release)
* Зайти по-очереди в каждую из них и выполнить: sudo make install (хотя, достаточно зайти только в Release)
* Проверить что оно реально установилось куда надо. Для этого поискать в системе *.so
файлы и заголовки от QtSerialPort (по идее они должны быть рядом с аналогичными файлами от Qt4)
* В своем проекте в *.pro файле прописать: CONFIG += serialport

PS: На ВИКИ это все есть!  Злой
Записан

ArchLinux x86_64 / Win10 64 bit
koldun90
Крякер
****
Offline Offline

Сообщений: 345


Просмотр профиля
« Ответ #7 : Февраль 28, 2015, 15:06 »

создалась только папка build-qtserialport-Desktop-Debug после сборки проекта
Код:
[root@maks build-qtserialport-Desktop-Debug]# sudo make install
cd src/ && make -f Makefile install
make[1]: Entering directory `/build-qtserialport-Desktop-Debug/src' cd serialport/ && make -f Makefile install
erialport'
h /usr/lib64/qt48/include/QtSerialPort/
/lib64/qt48/include/QtSerialPort/
install -m 755 -p /qt-qtserialport/src/serialport/qserialportinfo.h /usr/lib64/qt48/include/QtSerialPort/
h /usr/lib64/qt48/include/QtSerialPort/
/lib64/qt48/include/QtSerialPort/
install -m 755 -p /qt-qtserialport/src/serialport/qserialportinfo.h /usr/lib64/qt48/include/QtSerialPort/
Port/QSerialPort /usr/lib64/qt48/include/QtSerialPort/
Port/QSerialPortInfo /usr/lib64/qt48/include/QtSerialPort/
ort.prf /usr/lib64/qt48/mkspecs/features/
libQtSerialPort.so.1.0.0"
alPort.so"
alPort.so.1"
alPort.so.1.0"
SerialPort.prl"
rialport'
make[1]: Leaving directory `/build-qtserialport-Desktop-Debug/src'
cd examples/ && make -f Makefile install
les'
cd serialport/ && make -f Makefile install
les/serialport'
cd cenumerator/ && make -f Makefile install
les/serialport/cenumerator'
make[3]: Цель `install' не требует выполнения команд.
es/serialport/cenumerator'
cd creaderasync/ && make -f Makefile install
les/serialport/creaderasync'
make[3]: Цель `install' не требует выполнения команд.
es/serialport/creaderasync'
cd creadersync/ && make -f Makefile install
les/serialport/creadersync'
make[3]: Цель `install' не требует выполнения команд.
es/serialport/creadersync'
cd cwriterasync/ && make -f Makefile install
les/serialport/cwriterasync'
make[3]: Цель `install' не требует выполнения команд.
es/serialport/cwriterasync'
cd cwritersync/ && make -f Makefile install
les/serialport/cwritersync'
make[3]: Цель `install' не требует выполнения команд.
es/serialport/cwritersync'
cd enumerator/ && make -f Makefile install
les/serialport/enumerator'
make[3]: Цель `install' не требует выполнения команд.
es/serialport/enumerator'
cd terminal/ && make -f Makefile install
les/serialport/terminal'
make[3]: Цель `install' не требует выполнения команд.
es/serialport/terminal'
cd blockingmaster/ && make -f Makefile install
les/serialport/blockingmaster'
make[3]: Цель `install' не требует выполнения команд.
es/serialport/blockingmaster'
cd blockingslave/ && make -f Makefile install
les/serialport/blockingslave'
make[3]: Цель `install' не требует выполнения команд.
es/serialport/blockingslave'
cd master/ && make -f Makefile install
les/serialport/master'
make[3]: Цель `install' не требует выполнения команд.
es/serialport/master'
cd slave/ && make -f Makefile install
les/serialport/slave'
make[3]: Цель `install' не требует выполнения команд.
es/serialport/slave'
es/serialport'
es'
cd tests/ && make -f Makefile install
'
cd auto/ && make -f Makefile install
/auto'
cd qserialport/ && make -f Makefile install
/auto/qserialport'
make[3]: Цель `install' не требует выполнения команд.
auto/qserialport'
cd qserialportinfo/ && make -f Makefile install
/auto/qserialportinfo'
make[3]: Цель `install' не требует выполнения команд.
auto/qserialportinfo'
cd cmake/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Debug/tests/auto/cmake'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Debug/tests/auto/cmake'
make[2]: Leaving directory `/build-qtserialport-Desktop-Debug/tests/auto'
cd manual/ && make -f Makefile install
make[2]: Entering directory `/build-qtserialport-Desktop-Debug/tests/manual'
cd qserialportinfo/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Debug/tests/manual/qserialportinfo'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Debug/tests/manual/qserialportinfo'
cd qserialport/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Debug/tests/manual/qserialport'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Debug/tests/manual/qserialport'
make[2]: Leaving directory `/build-qtserialport-Desktop-Debug/tests/manual'
make[1]: Leaving directory `/build-qtserialport-Desktop-Debug/tests'[root@maks build-qtserialport-Desktop-Debug]#    

это все нормально собралось или как?
« Последнее редактирование: Февраль 28, 2015, 15:12 от koldun90 » Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #8 : Февраль 28, 2015, 15:37 »

В QtCreator поменять цель Debug на Release в свойствах проекта.

ЗЫ: И пора бы уже самому начинать думать...
Записан

ArchLinux x86_64 / Win10 64 bit
koldun90
Крякер
****
Offline Offline

Сообщений: 345


Просмотр профиля
« Ответ #9 : Февраль 28, 2015, 17:05 »

поменял цель "отладку" на "выпуск"

Код:
[root@maks build-qtserialport-Desktop-Release]# sudo make install
cd src/ && make -f Makefile install
make[1]: Entering directory `/build-qtserialport-Desktop-Release/src'
cd serialport/ && make -f Makefile install
make[2]: Entering directory `/build-qtserialport-Desktop-Release/src/serialport'
install -m 755 -p /qt-qtserialport/src/serialport/qserialportglobal.h /usr/lib64/qt48/include/QtSerialPort/
strip /usr/lib64/qt48/include/QtSerialPort/qserialportglobal.h
strip: /usr/lib64/qt48/include/QtSerialPort/qserialportglobal.h: File format not recognized
make[2]: [install_target_headers] Ошибка 1 (игнорирована)
install -m 755 -p /qt-qtserialport/src/serialport/qserialport.h /usr/lib64/qt48/include/QtSerialPort/
strip /usr/lib64/qt48/include/QtSerialPort/qserialport.h
strip: /usr/lib64/qt48/include/QtSerialPort/qserialport.h: File format not recognized
make[2]: [install_target_headers] Ошибка 1 (игнорирована)
install -m 755 -p /qt-qtserialport/src/serialport/qserialportinfo.h /usr/lib64/qt48/include/QtSerialPort/
strip /usr/lib64/qt48/include/QtSerialPort/qserialportinfo.h
strip: /usr/lib64/qt48/include/QtSerialPort/qserialportinfo.h: File format not recognized
make[2]: [install_target_headers] Ошибка 1 (игнорирована)
install -m 755 -p /qt-qtserialport/src/serialport/qserialportglobal.h /usr/lib64/qt48/include/QtSerialPort/
strip /usr/lib64/qt48/include/QtSerialPort/qserialportglobal.h
strip: /usr/lib64/qt48/include/QtSerialPort/qserialportglobal.h: File format not recognized
make[2]: [install_target_headers] Ошибка 1 (игнорирована)
install -m 755 -p /qt-qtserialport/src/serialport/qserialport.h /usr/lib64/qt48/include/QtSerialPort/
strip /usr/lib64/qt48/include/QtSerialPort/qserialport.h
strip: /usr/lib64/qt48/include/QtSerialPort/qserialport.h: File format not recognized
make[2]: [install_target_headers] Ошибка 1 (игнорирована)
install -m 755 -p /qt-qtserialport/src/serialport/qserialportinfo.h /usr/lib64/qt48/include/QtSerialPort/
strip /usr/lib64/qt48/include/QtSerialPort/qserialportinfo.h
strip: /usr/lib64/qt48/include/QtSerialPort/qserialportinfo.h: File format not recognized
make[2]: [install_target_headers] Ошибка 1 (игнорирована)
install -m 644 -p /build-qtserialport-Desktop-Release/include/QtSerialPort/QSerialPort /usr/lib64/qt48/include/QtSerialPort/ rt/
install -m 755 -p /qt-qtserialport/src/serialport/qt4support/serialport.prf /usr/lib64/qt48/mkspecs/features/
strip /usr/lib64/qt48/mkspecs/features/serialport.prf
strip: /usr/lib64/qt48/mkspecs/features/serialport.prf: File format not recognized
make[2]: [install_mkspecs_features] Ошибка 1 (игнорирована)
install -m 755 -p "libQtSerialPort.so.1.0.0" "/usr/lib64/qt48/lib64/libQtSerialPort.so.1.0.0"
strip --strip-unneeded "/usr/lib64/qt48/lib64/libQtSerialPort.so.1.0.0"
ln -f -s "libQtSerialPort.so.1.0.0" "/usr/lib64/qt48/lib64/libQtSerialPort.so"
ln -f -s "libQtSerialPort.so.1.0.0" "/usr/lib64/qt48/lib64/libQtSerialPort.so.1"
ln -f -s "libQtSerialPort.so.1.0.0" "/usr/lib64/qt48/lib64/libQtSerialPort.so.1.0"
install -m 644 -p "libQtSerialPort.prl" "/usr/lib64/qt48/lib64/libQtSerialPort.prl"
make[2]: Leaving directory `/build-qtserialport-Desktop-Release/src/serialport'
make[1]: Leaving directory `/build-qtserialport-Desktop-Release/src'
cd examples/ && make -f Makefile install
make[1]: Entering directory `/build-qtserialport-Desktop-Release/examples'
cd serialport/ && make -f Makefile install
make[2]: Entering directory `/build-qtserialport-Desktop-Release/examples/serialport'
cd cenumerator/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/examples/serialport/cenumerator'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/examples/serialport/cenumerator'
cd creaderasync/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/examples/serialport/creaderasync'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/examples/serialport/creaderasync'
cd creadersync/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/examples/serialport/creadersync'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/examples/serialport/creadersync'
cd cwriterasync/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/examples/serialport/cwriterasync'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/examples/serialport/cwriterasync'
cd cwritersync/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/examples/serialport/cwritersync'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/examples/serialport/cwritersync'
cd enumerator/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/examples/serialport/enumerator'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/examples/serialport/enumerator'
cd terminal/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/examples/serialport/terminal'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/examples/serialport/terminal'
cd blockingmaster/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/examples/serialport/blockingmaster'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/examples/serialport/blockingmaster'
cd blockingslave/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/examples/serialport/blockingslave'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/examples/serialport/blockingslave'
cd master/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/examples/serialport/master'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/examples/serialport/master'
cd slave/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/examples/serialport/slave'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/examples/serialport/slave'
make[2]: Leaving directory `/build-qtserialport-Desktop-Release/examples/serialport'
make[1]: Leaving directory `/build-qtserialport-Desktop-Release/examples'
cd tests/ && make -f Makefile install
make[1]: Entering directory `/build-qtserialport-Desktop-Release/tests'
cd auto/ && make -f Makefile install
make[2]: Entering directory `/build-qtserialport-Desktop-Release/tests/auto'
cd qserialport/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/tests/auto/qserialport'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/tests/auto/qserialport'
cd qserialportinfo/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/tests/auto/qserialportinfo'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/tests/auto/qserialportinfo'
cd cmake/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/tests/auto/cmake'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/tests/auto/cmake'
make[2]: Leaving directory `/build-qtserialport-Desktop-Release/tests/auto'
cd manual/ && make -f Makefile install
make[2]: Entering directory `/build-qtserialport-Desktop-Release/tests/manual'
cd qserialportinfo/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/tests/manual/qserialportinfo'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/tests/manual/qserialportinfo'
cd qserialport/ && make -f Makefile install
make[3]: Entering directory `/build-qtserialport-Desktop-Release/tests/manual/qserialport'
make[3]: Цель `install' не требует выполнения команд.
make[3]: Leaving directory `/build-qtserialport-Desktop-Release/tests/manual/qserialport'
make[2]: Leaving directory `/build-qtserialport-Desktop-Release/tests/manual'
make[1]: Leaving directory `/build-qtserialport-Desktop-Release/tests'
[root@maks build-qtserialport-Desktop-Release]#                                                                                                                                                         
Записан
koldun90
Крякер
****
Offline Offline

Сообщений: 345


Просмотр профиля
« Ответ #10 : Февраль 28, 2015, 17:24 »

вообщем пересобрал проект в релизе
затем запустил закрыл

добавил в свой проект строку
Код:
CONFIG += serialport
потом

в mainwindow.cpp

#include <QSerialPort>

перекомпилировал свой проект вроде он нашел QSerialPort в /usr/lib64/qt48/include/QtSerialPort/QSerialPort
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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