LINUX.ORG.RU

Не могу заставить работать связку Qt и boost::asio::serial_port

 , ,


0

1

Всем здравствуйте. У меня проблема следующего характера. Есть проект на Qt Для работы с один девайсом, который подключен к COM-порту компьютера. Не работает автодополнение кода и boost::asio::serial_port не подсвечивается. ОС - Ubuntu 12.04 LTS.

Делал так: 1. Поставил либы boost*-dev из synaptic. 2. В файле проекта добавил

LIBS += -lboost_iostreams
LIBS += -lboost_system
LIBS += -lboost_thread
3. В заголовочном файле -
#include "boost/asio.hpp"
4. А вот дальше идут непонятки. Объявляю экземпляр
boost::asio::io_service                 mIOServ;
- всё нормально. А с
boost::asio::serial_port                 mPort1;
автодополнение не знает, что в boost::asio есть еще и serial_port.

#include "boost/asio.hpp"
#include "boost/asio/serial_port.hpp"

также не помогает.

Подскажите, пожалуйста, в чем проблема?

Ответ на: комментарий от kirik444

По твоему кроме этого говна нет больше нормальных редакторов?

По теме: 1) Смотри какую-нибудь настройку для индексации хидерных файлов. Просто одного include мало; 2) Ты уверен, что boost::asio без qt работает, юниттест есть какой-нибудь? Может qt и не причём.

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

Это разве говно? Не знал. Посоветуйте тогда нормальный.

Насчёт 1 и 2 спасибо, буду сейчас пробовать.

kirik444
() автор топика
Ответ на: комментарий от VladimirMalyk

А какие «не проблемные» можешь посоветовать? А то я ни одного такого не видал. Работал только с китайскими noname.

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

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

VladimirMalyk ★★★★★
()
Ответ на: комментарий от VladimirMalyk

У меня был один чёрный. И один белый. А потом ещё один из полупрозрачной пластмассы. Ни один не работал нормально:)

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

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

VladimirMalyk ★★★★★
()

QextSerialPort, QTSerialPort пробовал. Но нужен boost. Пробую так:

    boost::asio::serial_port       pPort;
    pPort.set_option( boost::asio::serial_port_base::baud_rate( 1000000 ) );
 

Ошибки такие:

15:11:22: Выполняется сборка проекта WizFiTest...
15:11:22: Настройки не изменились, этап qmake пропускается.
15:11:22: Запускается: «/usr/bin/make» -w
make: Entering directory `/home/kirik444/development/WizFiTest/WizFiTest-build-desktop-Qt_4_8_1___PATH__________________'
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I../WizFiTest -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I../WizFiTest -I. -o main.o ../WizFiTest/main.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I../WizFiTest -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I../WizFiTest -I. -o dialog.o ../WizFiTest/dialog.cpp
../WizFiTest/dialog.cpp: In constructor 'Dialog::Dialog(QWidget*)':
../WizFiTest/dialog.cpp:7:36: error: no matching function for call to 'boost::asio::basic_serial_port<>::basic_serial_port()'
../WizFiTest/dialog.cpp:7:36: note: candidates are:
/usr/include/boost/asio/basic_serial_port.hpp:121:3: note: boost::asio::basic_serial_port<SerialPortService>::basic_serial_port(boost::asio::io_service&, const native_type&) [with SerialPortService = boost::asio::serial_port_service, boost::asio::basic_serial_port<SerialPortService>::native_type = int]
/usr/include/boost/asio/basic_serial_port.hpp:121:3: note:   candidate expects 2 arguments, 0 provided
/usr/include/boost/asio/basic_serial_port.hpp:100:12: note: boost::asio::basic_serial_port<SerialPortService>::basic_serial_port(boost::asio::io_service&, const string&) [with SerialPortService = boost::asio::serial_port_service, std::string = std::basic_string<char>]
/usr/include/boost/asio/basic_serial_port.hpp:100:12: note:   candidate expects 2 arguments, 0 provided
/usr/include/boost/asio/basic_serial_port.hpp:80:12: note: boost::asio::basic_serial_port<SerialPortService>::basic_serial_port(boost::asio::io_service&, const char*) [with SerialPortService = boost::asio::serial_port_service]
/usr/include/boost/asio/basic_serial_port.hpp:80:12: note:   candidate expects 2 arguments, 0 provided
/usr/include/boost/asio/basic_serial_port.hpp:64:12: note: boost::asio::basic_serial_port<SerialPortService>::basic_serial_port(boost::asio::io_service&) [with SerialPortService = boost::asio::serial_port_service]
/usr/include/boost/asio/basic_serial_port.hpp:64:12: note:   candidate expects 1 argument, 0 provided
/usr/include/boost/asio/basic_serial_port.hpp:46:7: note: boost::asio::basic_serial_port<>::basic_serial_port(const boost::asio::basic_serial_port<>&)
/usr/include/boost/asio/basic_serial_port.hpp:46:7: note:   candidate expects 1 argument, 0 provided
make: *** [dialog.o] Error 1
make: Leaving directory `/home/kirik444/development/WizFiTest/WizFiTest-build-desktop-Qt_4_8_1___PATH__________________'
15:11:25: Процесс «/usr/bin/make» завершился с кодом 2.
Возникла ошибка при сборке проекта WizFiTest (цель: Desktop)
Во время выполнения сборки на этапе «Сборка»

kirik444
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.