Top.Mail.Ru

Qt. Установка библиотеки QtSerialPort.

Мы уже много раз рассматривали модуль USART различных микроконтроллеров, связывали их с компьютером, но компьютерную часть взаимодействия пока не трогали. И вот пришло время об этом наконец-то поговорить... Итак, в ближайшее время мы будем разбираться, как получить данные от какого-либо внешнего устройства на ПК через com-порт, как их обработать и, если надо, отправить дальше.

В качестве инструмента мы будем применять уже упоминавшуюся на нашем сайте библиотеку Qt (вот тут) и среду программирования Qt Creator. Но в стандартных библиотеках, поставляющихся вместе с Qt Creator (на момент написания статьи), не реализован механизм приема/передачи данных по последовательному порту, поэтому нам придется озадачиться поиском какой-то специально для этого созданной библиотеки.

Из всего, что я встречал на просторах интернета, мне приглянулся модуль QtSerialPort, реализующий как раз-таки интерфейс для работы с последовательными портами, причем как с аппаратными, так и с виртуальными. Вот тут можно прочитать немножко про это дополнение к библиотекам Qt - QtSerialPort- ну и скачать тут тоже можно (и нужно).

И сегодняшняя статья будет посвящена установке этой библиотеки. Казалось бы, на официальном сайте установка библиотеки QtSerialPort описана настолько подробно, насколько вообще возможно, но все-таки есть ряд граблей, на которые можно наступить. Собственно, поэтому сейчас мы рассмотрим подробнейший процесс...

Шаг первый.

Скачиваем архив qt-qtserialport-HEAD с сайта, приведенного выше. Этот шаг даже комментировать больше не надо, так что двигаемся дальше.

Шаг второй.

Надо добавить необходимые пути в системные переменные среды. Для этого жмем правой кнопкой на "Мой компьютер" и заходим в свойства. Далее заходим в дополнительные параметры системы, открывается новое окошко с разными свойствами, и там внизу есть кнопка "Переменные среды". Она то нам и нужна, так что смело жмем. В системных переменных находим Path:

Переменные среды.

И добавляем туда следующее:

C:\QtSDK\Desktop\Qt\4.8.1\mingw\bin\;C:\QtSDK\mingw\bin\;C:\QtSDK\Desktop\Qt\4.8.1\

Соответственно путь к установленному Qt Creator'у у каждого свой. У меня вот - C:\QtSDK...

Шаг третий.

Скопируем куда-нибудь скачанную и распакованную папку qt-qtserialport-HEAD, пути к ней не должны содержать русских букв. Это важно. Я скопировал в корень диска С. Лезем в эту папку и довольно быстро натыкаемся на подпапку src. В ней я создал директорию для сборки - serialport-build.

Шаг четвертый.

В меню пуск находим QtSDK, но не запускаем а копаемся там дальше и находим в папке Desktop (все еще в меню пуск) Qt 4.8.1 for Desktop (MinGW). Этот ярлык и надо запустить. Открывается привычная командная строка.

Шаг пятый.

В командной строке переходим в директорию serialport-build, для этого вводим две команды:

  • для перехода в корень диска С: cd/
  • для перехода в нужную папку используется та же команда cd и соответствующий путь, как на скриншотах:
Установка библиотеки QtSerialPort.
Библиотека QTSerialPort.

Далее необходимо ввести команду:

 qmake ../serialport/serialport.pro
Библиотеки QTSerialPort

Осталось совсем немного, вводим команду:

mingw32-make

Теперь ждем, а затем вводим команду:

mingw32-make install

Шаг шестой.

В скачанном архиве находим папку qt4support. Тут нас интересует файл serialport.prf. Копируем его вот сюда: С:/QtSDK/Desktop/Qt/4.8.1/mingw/mkspecs/features/serialport.prf.

Шаг седьмой.

Запускаем Qt Creator. Попробуем собрать какой-нибудь пример из поставляющихся вместе с библиотекой QtSerialPort. Жмем открыть проект и выбираем например проект Enumerator (все примеры находятся в папке Examples). В самом Qt Creator'е открываем файл enumerator.pro и дописываем в конец две строки:

CONFIG += serialport
LIBS += -lserialport

Вот как выглядит весь файл:

greaterThan(QT_MAJOR_VERSION, 4) {
QT += widgets serialport
} else {
include($QTSERIALPORT_PROJECT_ROOT/src/serialport/qt4support/serialport.prf)
}
TARGET = enumerator 
TEMPLATE = app 
SOURCES += \ main.cpp

CONFIG += serialport 
LIBS += -lserialport

После этого уже можно смело собирать проект и, если все описанное осуществлено верно, программа соберется и запустится. Вот на этом, собственно, и все, инструкция по установке библиотеки QtSerialPort готова 👍

Архив с библиотекой - qt-qtserialport

Подписаться
Уведомить о
guest

20 комментариев
Старые
Новые
Межтекстовые Отзывы
Посмотреть все комментарии
kuzulis
kuzulis
11 лет назад

0. Добавлять переменные окружения глобально - плохая идея. Лучше этого не делать вообще (при сборке из QtCreator) или делать локально в cmd.exe.

1. Шаг 6 не нужен. Оно само скопируется в mkspecs при установке.

2. Делать LIBS += -lserialport не надо. Оно слинкуется при указании CONFIG += serialport.

3. Делать include($$QTSERIALPORT_PROJECT_ROOT/src/serialport/qt4support/serialport.prf) тоже не надо. Это сделано только для того чтобы скомпилировались примеры которые идут с библиотекой.

4. Собрать и установить библиотеку можно из QtCreator, просто добавив на вкладке "Проекты" для текущего проекта новую Make цель "install". Теперь при сборке оно должно само собераться и установиться автоматом.

Людмила Винокурова
11 лет назад

Если честно - я ничегошеньки не понимаю, но может пообщавшись с мастерами и до меня дойдёт 😉

Антон Ковалев
Антон Ковалев
11 лет назад

Сделал,как вы написали, но на последнем шаге выводит ошибку "Could not find any sync.profile for your module!". Потом указывает путь на файл syncqt.bat но он там есть. Не знаете в чем может быть причина?

Дмитрий
Дмитрий
10 лет назад

Уважаемый Aveal, не могу понять где все-таки скачать архив на шаге 1? Не могли бы Вы в соответствии с замечаниями от kuzulis еще раз подробно все изложить. Заранее благодарен.

Дмитрий
Дмитрий
10 лет назад

А на почту не можете выслать?

Дмитрий
Дмитрий
10 лет назад

Ок. Если до тех пор не найду, то напомню после 22 го.

Виктор
Виктор
10 лет назад

Может я туплю, но после команды mingw32-make пишется куча сообщений об ошибке. В чем может быть проблема? http://itmages.ru/image/view/2061060/b0fa0a2b

Помогите, пожалуйста)

meiir
meiir
9 лет назад

Уважаемый Aveal, никак не могу скачать архив о котором вы говорите в шаге 1! Не могли бы вы скинуть свой архив по e-mail. Заранее спасибо!

Basil
Basil
8 лет назад

Спасибо Вам большое за статью - до сих пор актуально. Сижу на ХР новые qt не ставятся так, что приходится юзать QT 4.8, и отдельное спасибо за библиотеку - найти уже нигде невозможно.

qtshnik
8 лет назад

С новыми версиями реально какая-то иногда засада, а вообще я просто подрубаю такие библиотеки динамически или можно установщик замутить. Спасибо за полезную статейку!

20
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x