Название: Опять поповоду QextserialPort Отправлено: druid от Ноябрь 02, 2009, 23:14 Добрый день всем ворумчанам. Скажу сразу я новичек в QT.
Мне нада подключить библиотку QextserialPort для работы с сом-портом. (ОС fedora l11) Буду расказывать по порядку как я делал: 1. скачал QextserialPort v0.9 c cfqnf http://qextserialport.sourceforge.net/ там еще есть версии по новее (пробывал их тоже) 2.скомпилил командами qmake --unix qmake QextserialPort.pro make 3. после компиляции в папке QextserialPort появились три дериктории lib, moc и obj 4. Терь самое интересное подключение: 5 Создал консольній проект в QT Creator (наз 123) в проекте два файла: main.cpp и 123.pro тепрерь пользуясь http://www.prog.org.ru/topic_7327_0.html 6. добавил папку проекта (папка 123) папку с QextserialPort далее в 123.pro добавил следующее QT -= gui unix:DEFINES = _TTY_POSIX_ win32:DEFINES = _TTY_WIN_ LIBS += -lqextserialport TARGET = 123 CONFIG += console CONFIG -= app_bundle Далее подключилв #include <qextserialport/qextserialport.h> в main.cpp терь пітаюсь собрать проект. #include <QtCore/QCoreApplication> #include <qextserialport/qextserialport.h> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); return a.exec(); } Все после єтого компилю проект и получаю ВОТ ТАКОЕ: /home/druid/123/./qextserialport/posix_qextserialport.h:12: In file included from ./qextserialport/posix_qextserialport.h:12, /home/druid/123/./qextserialport/qextserialport.h:7: from ./qextserialport/qextserialport.h:7, /home/druid/123/main.cpp:3: from main.cpp:3: /home/druid/123/./qextserialport/qextserialbase.h:174: ошибка: ‘Offset’ does not name a type /home/druid/123/./qextserialport/qextserialbase.h:204: ошибка: ‘Q_LONG’ does not name a type /home/druid/123/./qextserialport/qextserialbase.h:205: ошибка: ‘Q_LONG’ does not name a type /home/druid/123/./qextserialport/qextserialport.h:7: In file included from ./qextserialport/qextserialport.h:7, /home/druid/123/main.cpp:3: from main.cpp:3: /home/druid/123/./qextserialport/posix_qextserialport.h:28: ошибка: ‘Q_ULONG’ does not name a type /home/druid/123/./qextserialport/posix_qextserialport.h:43: ошибка: ‘Offset’ does not name a type /home/druid/123/./qextserialport/posix_qextserialport.h:63: ошибка: ‘Q_LONG’ does not name a type /home/druid/123/./qextserialport/posix_qextserialport.h:64: ошибка: ‘Q_LONG’ does not name a type Вот такие пироги! Не может эт я еше в шлеме может ниче не понимаю. но что я ему токо не делал, нич не помогает. Заранее спасиба за ответ!!! Подскажите пожалуйста в ч чем я не прав!!!! Название: Re: Опять поповоду QextserialPort Отправлено: BRE от Ноябрь 02, 2009, 23:28 Библиотека QextSerialPort 0.9 разработана для Qt3. И ты ее собираешь для Qt3.
Но использовать ты ее пытаешься с Qt4. Не получиться. Камрад kuzulis разрабатывает подобную библиотеку для Qt4. Поищи по форуму темы про QSerialDevice. Вот кстати одна из них: http://www.prog.org.ru/topic_9537_0.html Название: Re: Опять поповоду QextserialPort Отправлено: pastor от Ноябрь 03, 2009, 01:23 QextserialPort 1.x.x поддерживает Qt4
Название: Re: Опять поповоду QextserialPort Отправлено: kuzulis от Ноябрь 03, 2009, 08:34 :)
2 druid , вот тебе прямой линк: http://fireforge.net/projects/qserialdevice/ Качай версию 0.1.0, там в архиве есть примерчики и документация краткая. Так-же можеш там-же скачать последний срез SVN (вчера я обновил) - но не тестировал: http://fireforge.net/scm/?group_id=199 ЗЫ: а вообще попробуй или QextSerialPort или QSerialDevice - и выбери то что тебе понравится :) ЗЫЫ: QextSerialPort переехал с sourceforge в google: http://code.google.com/p/qextserialport/ Название: Re: Опять поповоду QextserialPort Отправлено: druid от Ноябрь 04, 2009, 00:20 Да вот попорбывал ниче не полуичилось :
скачал я qserialdevice-scm-latest.tar.gz, розархивировал, пытаюсь собрать библиотку как написано в readme Сперва: qmake project.pro Потом: make и получаю отакой error: make[1]: Entering directory `/home/druid/Рабочий стол/qserialdevice-scm-2009-11-03/qserialdevice/src' g++ -c -pipe -Wall -W -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i586 -mtune=generic -fasynchronous-unwind-tables -DQT_NO_DEBUG -DQT_SHARED -DQT_TABLET_SUPPORT -DQT_THREAD_SUPPORT -I/usr/lib/qt-3.3/mkspecs/default -I. -I/usr/lib/qt-3.3/include -Ibuild/moc/ -o build/obj/abstractserial.o abstractserial.cpp abstractserial.cpp:387:23: error: QStringList: Нет такого файла или каталога abstractserial.cpp:388:36: error: QAbstractEventDispatcher: Нет такого файла или каталога abstractserial.cpp:389:17: error: QTime: Нет такого файла или каталога In file included from abstractserial.cpp:391: abstractserialengine.h:27:19: error: QObject: Нет такого файла или каталога In file included from abstractserialengine.h:29, from abstractserial.cpp:391: abstractserial.h:27:21: error: QIODevice: Нет такого файла или каталога abstractserial.h:28:16: error: QMap: Нет такого файла или каталога abstractserial.h:29:21: error: QDateTime: Нет такого файла или каталога abstractserial.cpp:396:18: error: QDebug: Нет такого файла или каталога abstractserial.cpp:397:19: error: QString: Нет такого файла или каталога In file included from abstractserialengine.h:29, from abstractserial.cpp:391: abstractserial.h:34: ошибка: expected class-name before ‘{’ token abstractserial.h:35: ошибка: ‘Q_OBJECT’ does not name a type In file included from abstractserialengine.h:29, from abstractserial.cpp:391: abstractserial.h:178: ошибка: expected ‘)’ before ‘*’ token abstractserial.h:181: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.h:181: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.h:182: ошибка: ‘QString’ does not name a type abstractserial.h:187: ошибка: ‘QStringList’ does not name a type abstractserial.h:191: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.h:191: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.h:192: ошибка: ‘QString’ does not name a type abstractserial.h:193: ошибка: ‘QStringList’ does not name a type abstractserial.h:196: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.h:196: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.h:197: ошибка: ‘QString’ does not name a type abstractserial.h:198: ошибка: ‘QStringList’ does not name a type abstractserial.h:201: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.h:201: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.h:202: ошибка: ‘QString’ does not name a type abstractserial.h:203: ошибка: ‘QStringList’ does not name a type abstractserial.h:206: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.h:206: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.h:207: ошибка: ‘QString’ does not name a type abstractserial.h:208: ошибка: ‘QStringList’ does not name a type abstractserial.h:211: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.h:211: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.h:212: ошибка: ‘QString’ does not name a type abstractserial.h:213: ошибка: ‘QStringList’ does not name a type abstractserial.h:221: ошибка: ‘ulong’ does not name a type abstractserial.h:224: ошибка: ‘OpenMode’ has not been declared abstractserial.h:229: ошибка: ‘qint64’ does not name a type abstractserial.h:241: ошибка: ‘qint64’ does not name a type abstractserial.h:242: ошибка: ‘qint64’ does not name a type abstractserial.h:245: ошибка: ISO C++ запрещает декларации ‘Q_DECLARE_PRIVATE’ без типа abstractserial.h:246: ошибка: expected ‘;’ before ‘Q_DISABLE_COPY’ abstractserial.h:252: ошибка: ISO C++ запрещает декларации ‘QMap’ без типа abstractserial.h:252: ошибка: expected ‘;’ before ‘<’ token abstractserial.h:253: ошибка: ISO C++ запрещает декларации ‘QMap’ без типа abstractserial.h:253: ошибка: expected ‘;’ before ‘<’ token abstractserial.h:254: ошибка: ISO C++ запрещает декларации ‘QMap’ без типа abstractserial.h:254: ошибка: expected ‘;’ before ‘<’ token abstractserial.h:255: ошибка: ISO C++ запрещает декларации ‘QMap’ без типа abstractserial.h:255: ошибка: expected ‘;’ before ‘<’ token abstractserial.h:256: ошибка: ISO C++ запрещает декларации ‘QMap’ без типа abstractserial.h:256: ошибка: expected ‘;’ before ‘<’ token abstractserial.h:259: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.h:259: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.h:260: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.h:260: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.h:261: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.h:261: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.h:262: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.h:262: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.h:263: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.h:263: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.h:264: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.h:264: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.h:266: ошибка: ‘QString’ does not name a type abstractserial.h:267: ошибка: ‘QString’ does not name a type abstractserial.h:268: ошибка: ‘QString’ does not name a type abstractserial.h:269: ошибка: ‘QString’ does not name a type abstractserial.h:270: ошибка: ‘QString’ does not name a type abstractserial.h:271: ошибка: ‘QString’ does not name a type In file included from abstractserialengine.h:29, from abstractserial.cpp:391: abstractserial.h:239: предупреждение: нестатический константный элемент ‘AbstractSerialPrivate* const AbstractSerial::d_ptr’ в классе без конструктора In file included from abstractserialengine.h:29, from abstractserial.cpp:391: abstractserial.h:280: ошибка: ISO C++ запрещает декларации ‘Q_DECLARE_PUBLIC’ без типа abstractserial.h:281: ошибка: expected ‘;’ before ‘public’ In file included from abstractserial.cpp:391: abstractserialengine.h:33: ошибка: expected class-name before ‘{’ token abstractserialengine.h:34: ошибка: ISO C++ запрещает декларации ‘Q_OBJECT’ без типа abstractserialengine.h:35: ошибка: expected ‘;’ before ‘public’ abstractserialengine.h:39: ошибка: expected ‘;’ before ‘(’ token abstractserialengine.h:42: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserialengine.h:42: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserialengine.h:43: ошибка: ‘QStringList’ does not name a type abstractserialengine.h:51: ошибка: ‘QIODevice’ has not been declared abstractserialengine.h:51: ошибка: expected ‘,’ or ‘...’ before ‘mode’ abstractserialengine.h:60: ошибка: ‘ulong’ does not name a type abstractserialengine.h:62: ошибка: ‘qint64’ does not name a type abstractserialengine.h:64: ошибка: ‘qint64’ does not name a type abstractserialengine.h:65: ошибка: ‘qint64’ does not name a type abstractserialengine.h:74: ошибка: ‘QString’ does not name a type abstractserialengine.h:90: ошибка: expected primary-expression before ‘void’ abstractserialengine.h:90: ошибка: ISO C++ запрещает декларации ‘Q_SIGNALS’ без типа abstractserialengine.h:90: ошибка: expected ‘;’ before ‘void’ abstractserialengine.h:95: ошибка: ‘QObject’ has not been declared abstractserialengine.h:97: ошибка: ISO C++ запрещает декларации ‘Q_DECLARE_PRIVATE’ без типа abstractserialengine.h:98: ошибка: expected ‘;’ before ‘Q_DISABLE_COPY’ abstractserialengine.h:99: ошибка: expected ‘;’ before ‘}’ token abstractserialengine.h:97: ошибка: cannot declare parameter ‘<anonymous>’ to be of abstract type ‘AbstractSerialEngine’ abstractserialengine.h:33: замечание: because the following virtual functions are pure within ‘AbstractSerialEngine’: abstractserialengine.h:44: замечание: virtual bool AbstractSerialEngine::setBaudRate(AbstractSerial::BaudRate) abstractserialengine.h:45: замечание: virtual bool AbstractSerialEngine::setDataBits(AbstractSerial::DataBits) abstractserialengine.h:46: замечание: virtual bool AbstractSerialEngine::setParity(AbstractSerial::Parity) abstractserialengine.h:47: замечание: virtual bool AbstractSerialEngine::setStopBits(AbstractSerial::StopBits) abstractserialengine.h:48: замечание: virtual bool AbstractSerialEngine::setFlowControl(AbstractSerial::Flow) abstractserialengine.h:49: замечание: virtual bool AbstractSerialEngine::setCharIntervalTimeout(int) abstractserialengine.h:51: замечание: virtual bool AbstractSerialEngine::open(int) abstractserialengine.h:52: замечание: virtual void AbstractSerialEngine::close() abstractserialengine.h:53: замечание: virtual bool AbstractSerialEngine::flush() abstractserialengine.h:54: замечание: virtual bool AbstractSerialEngine::reset() abstractserialengine.h:57: замечание: virtual bool AbstractSerialEngine::setDtr(bool) abstractserialengine.h:58: замечание: virtual bool AbstractSerialEngine::setRts(bool) abstractserialengine.h:67: замечание: virtual bool AbstractSerialEngine::waitForRead(int, bool*) const abstractserialengine.h:68: замечание: virtual bool AbstractSerialEngine::waitForWrite(int, bool*) const abstractserialengine.h:69: замечание: virtual bool AbstractSerialEngine::waitForReadOrWrite(bool*, bool*, bool, bool, int, bool*) const abstractserialengine.h:84: замечание: virtual bool AbstractSerialEngine::isReadNotificationEnabled() const abstractserialengine.h:85: замечание: virtual void AbstractSerialEngine::setReadNotificationEnabled(bool) abstractserialengine.h:86: замечание: virtual bool AbstractSerialEngine::isWriteNotificationEnabled() const abstractserialengine.h:87: замечание: virtual void AbstractSerialEngine::setWriteNotificationEnabled(bool) abstractserialengine.h:107: ошибка: ‘QString’ does not name a type abstractserial.cpp:419: ошибка: определение неявно декларированного ‘AbstractSerialPrivate::AbstractSerialPrivate()’ abstractserialengine.h: In member function ‘void AbstractSerialPrivate::resetSerialLayer()’: abstractserialengine.h:37: ошибка: ‘virtual AbstractSerialEngine::~AbstractSerialEngine()’ is private abstractserial.cpp:438: ошибка: в данном контексте abstractserial.cpp: In member function ‘bool AbstractSerialPrivate::initSerialLayer()’: abstractserial.cpp:445: ошибка: expected primary-expression before ‘)’ token abstractserial.cpp:445: ошибка: нет декларации ‘Q_Q’ в этой области видимости abstractserial.cpp:447: ошибка: ‘createSerialEngine’ is not a member of ‘AbstractSerialEngine’ abstractserial.cpp:447: ошибка: нет декларации ‘q’ в этой области видимости abstractserial.cpp: In member function ‘void AbstractSerialPrivate::setupSerialNotifiers()’: abstractserial.cpp:455: ошибка: expected primary-expression before ‘)’ token abstractserial.cpp:455: ошибка: нет декларации ‘Q_Q’ в этой области видимости abstractserial.cpp:458: ошибка: нет декларации ‘q’ в этой области видимости abstractserial.cpp:458: ошибка: ‘QIODevice’ has not been declared abstractserial.cpp:459: ошибка: ‘QIODevice’ has not been declared abstractserialengine.h:85: ошибка: ‘virtual void AbstractSerialEngine::setReadNotificationEnabled(bool)’ is private abstractserial.cpp:460: ошибка: в данном контексте abstractserial.cpp:461: ошибка: ‘QObject’ has not been declared abstractserial.cpp:461: ошибка: нет декларации ‘readNotification’ в этой области видимости abstractserial.cpp:461: ошибка: нет декларации ‘SIGNAL’ в этой области видимости abstractserial.cpp:461: ошибка: нет декларации ‘SLOT’ в этой области видимости abstractserial.cpp:463: ошибка: ‘QIODevice’ has not been declared abstractserial.cpp:469: ошибка: ‘QIODevice’ has not been declared abstractserialengine.h:85: ошибка: ‘virtual void AbstractSerialEngine::setReadNotificationEnabled(bool)’ is private abstractserial.cpp:470: ошибка: в данном контексте abstractserial.cpp:471: ошибка: ‘QObject’ has not been declared abstractserialengine.h: In member function ‘void AbstractSerialPrivate::enableSerialNotifiers(bool)’: abstractserialengine.h:85: ошибка: ‘virtual void AbstractSerialEngine::setReadNotificationEnabled(bool)’ is private abstractserial.cpp:486: ошибка: в данном контексте abstractserial.cpp: In member function ‘bool AbstractSerialPrivate::canReadNotification()’: abstractserial.cpp:493: ошибка: expected primary-expression before ‘)’ token abstractserial.cpp:493: ошибка: нет декларации ‘Q_Q’ в этой области видимости abstractserial.cpp:496: ошибка: нет декларации ‘emit’ в этой области видимости abstractserial.cpp:496: ошибка: expected ‘;’ before ‘q’ abstractserial.cpp:503: ошибка: нет декларации ‘emit’ в этой области видимости abstractserial.cpp:503: ошибка: expected ‘;’ before ‘q’ abstractserial.cpp: At global scope: abstractserial.cpp:541: ошибка: expected ‘)’ before ‘*’ token abstractserial.cpp: In destructor ‘virtual AbstractSerial::~AbstractSerial()’: abstractserial.cpp:556: ошибка: expected primary-expression before ‘)’ token abstractserial.cpp:556: ошибка: нет декларации ‘Q_D’ в этой области видимости abstractserial.cpp:557: ошибка: нет декларации ‘d’ в этой области видимости abstractserial.cpp:431: ошибка: ‘virtual AbstractSerialPrivate::~AbstractSerialPrivate()’ is private abstractserial.cpp:558: ошибка: в данном контексте abstractserial.cpp: In member function ‘void AbstractSerial::initialiseMaps()’: abstractserial.cpp:568: ошибка: нет декларации ‘statusesMap’ в этой области видимости abstractserial.cpp:568: ошибка: ‘QObject’ has not been declared abstractserial.cpp:569: ошибка: ‘QObject’ has not been declared abstractserial.cpp:570: ошибка: ‘QObject’ has not been declared abstractserial.cpp:571: ошибка: ‘QObject’ has not been declared abstractserial.cpp:572: ошибка: ‘QObject’ has not been declared abstractserial.cpp:573: ошибка: ‘QObject’ has not been declared abstractserial.cpp:574: ошибка: ‘QObject’ has not been declared abstractserial.cpp:575: ошибка: ‘QObject’ has not been declared abstractserial.cpp:576: ошибка: ‘QObject’ has not been declared abstractserial.cpp:577: ошибка: ‘QObject’ has not been declared abstractserial.cpp:578: ошибка: ‘QObject’ has not been declared abstractserial.cpp:579: ошибка: ‘QObject’ has not been declared abstractserial.cpp:580: ошибка: ‘QObject’ has not been declared abstractserial.cpp:581: ошибка: ‘QObject’ has not been declared abstractserial.cpp:582: ошибка: ‘QObject’ has not been declared abstractserial.cpp:583: ошибка: ‘QObject’ has not been declared abstractserial.cpp:584: ошибка: ‘QObject’ has not been declared abstractserial.cpp: At global scope: abstractserial.cpp:972: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.cpp:972: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.cpp: In member function ‘bool AbstractSerial::setStopBits(int)’: abstractserial.cpp:974: ошибка: нет декларации ‘stopBits’ в этой области видимости abstractserial.cpp: At global scope: abstractserial.cpp:972: предупреждение: параметр ‘QString’ не используется abstractserial.cpp:987: ошибка: ‘QString’ does not name a type abstractserial.cpp:999: ошибка: ‘QStringList’ does not name a type abstractserial.cpp: In member function ‘bool AbstractSerial::setFlowControl(AbstractSerial::Flow)’: abstractserial.cpp:1020: ошибка: expected primary-expression before ‘)’ token abstractserial.cpp:1020: ошибка: нет декларации ‘Q_D’ в этой области видимости abstractserial.cpp:1021: ошибка: нет декларации ‘isOpen’ в этой области видимости abstractserial.cpp:1022: ошибка: нет декларации ‘d’ в этой области видимости abstractserial.cpp: At global scope: abstractserial.cpp:1045: ошибка: ISO C++ запрещает декларации ‘QString’ без типа abstractserial.cpp:1045: ошибка: expected ‘,’ or ‘...’ before ‘&’ token abstractserial.cpp: In member function ‘bool AbstractSerial::setFlowControl(int)’: abstractserial.cpp:1047: ошибка: нет декларации ‘flow’ в этой области видимости abstractserial.cpp: At global scope: abstractserial.cpp:1045: предупреждение: параметр ‘QString’ не используется abstractserial.cpp:1060: ошибка: ‘QString’ does not name a type abstractserial.cpp:1072: ошибка: ‘QStringList’ does not name a type abstractserial.cpp: In member function ‘bool AbstractSerial::setCharIntervalTimeout(int)’: abstractserial.cpp:1093: ошибка: expected primary-expression before ‘)’ token abstractserial.cpp:1093: ошибка: нет декларации ‘Q_D’ в этой области видимости abstractserial.cpp:1094: ошибка: нет декларации ‘isOpen’ в этой области видимости abstractserial.cpp:1095: ошибка: нет декларации ‘d’ в этой области видимости abstractserial.cpp: In member function ‘int AbstractSerial::charIntervalTimeout() const’: abstractserial.cpp:1115: ошибка: expected primary-expression before ‘const’ abstractserial.cpp:1115: ошибка: нет декларации ‘Q_D’ в этой области видимости abstractserial.cpp:1116: ошибка: нет декларации ‘d’ в этой области видимости abstractserial.cpp: In member function ‘bool AbstractSerial::setDtr(bool)’: abstractserial.cpp:1133: ошибка: expected primary-expression before ‘)’ token abstractserial.cpp:1133: ошибка: нет декларации ‘Q_D’ в этой области видимости abstractserial.cpp:1134: ошибка: нет декларации ‘isOpen’ в этой области видимости abstractserial.cpp:1135: ошибка: нет декларации ‘d’ в этой области видимости abstractserial.cpp: In member function ‘bool AbstractSerial::setRts(bool)’: abstractserial.cpp:1158: ошибка: expected primary-expression before ‘)’ token abstractserial.cpp:1158: ошибка: нет декларации ‘Q_D’ в этой области видимости abstractserial.cpp:1159: ошибка: нет декларации ‘isOpen’ в этой области видимости abstractserial.cpp:1160: ошибка: нет декларации ‘d’ в этой области видимости abstractserial.cpp: At global scope: abstractserial.cpp:1179: ошибка: ‘ulong’ does not name a type abstractserial.cpp:1212: ошибка: ‘bool AbstractSerial::open’ не является статическим элементом ‘class AbstractSerial’ abstractserial.cpp:1212: ошибка: нет декларации ‘OpenMode’ в этой области видимости abstractserial.cpp:1213: ошибка: expected ‘,’ or ‘;’ before ‘{’ token make[1]: *** [build/obj/abstractserial.o] Ошибка 1 make[1]: Leaving directory `/home/druid/Рабочий стол/qserialdevice-scm-2009-11-03/qserialdevice/src' make: *** [sub-qserialdevice-src] Ошибка 2 Может я чете не понимаю но у мя такое подозрение что собака зарыта в этих строчках в readme ================= 1. Должна быть установлена библиотека QT>4.1.1 и правильно настроены её переменные окружения. 2. Должен быть установлен компилятор и настроены его переменные окружения: * MinGW - если сборка производится в Windows (Примечание: работа с компилятором от MS не тестировалась) * gcc - если сборка производится из Linux и т.п. ================= Но как это исправить, чесно пока нет ни малейшей идеи. Может кто подскажет. спасибо заренне за помощь Название: Re: Опять поповоду QextserialPort Отправлено: pastor от Ноябрь 04, 2009, 01:42 2 druid: Ты же Qt3 используешь!
Название: Re: Опять поповоду QextserialPort Отправлено: kuzulis от Ноябрь 04, 2009, 08:28 Ух.. ёёё :)
druid, на всякий пожарный - используй наверное все-таки версию библы 0.1.0 , т.к. в SVN я постоянно вношу изменения и не факт, что оно там будет работать. + ко всему - вчера я обнаружил то, что при текущей реализации библиотеки максимально за 1 раз можно прочитать 4096 байт . (из-за того, QIODevice::read() реализован так как мне НЕ надо). т.е. придется мне пересмотреть концепцию и исправить касяк :) Название: Re: Опять поповоду QextserialPort Отправлено: BRE от Ноябрь 04, 2009, 09:39 2 druid: Ты же Qt3 используешь! +12 druid Для использования Qt3: qmake assistant designer Для использования Qt4: qmake-qt4 assistant-qt4 designer-qt4 Название: Re: Опять поповоду QextserialPort Отправлено: druid от Ноябрь 07, 2009, 02:10 За поученую инфу спасиба, библиотека скомпилилась. Но вопрос еше одмн остается не могу правильно подключить ее к проекту
как я делаю кидаю в проект папку с собраной библиотекой src (библ Qserialdevice ) в про файл проетка докиліваю DEFINES = _TTY_POSIX_ LIBS += -L/home/druid/test/5/src/release -llibqserialdevice где /home/druid/test/5/src/release - путь к библ файл "libqserialdevice.a" на любіе изменения одна и таже ошибка ":-1: error: collect2: выполнение ld завершилось с кодом возврата 1" Походу неправильно подключена библиотка. Народ поскажите как правильно!!!! Название: Re: Опять поповоду QextserialPort Отправлено: lit-uriy от Ноябрь 07, 2009, 03:58 >>одна и таже ошибка ":-1: error: collect2: выполнение ld завершилось с кодом возврата 1"
обычно в предыдущей строчке написана причина этой ошибки Название: Re: Опять поповоду QextserialPort Отправлено: BRE от Ноябрь 07, 2009, 09:22 LIBS += -L/home/druid/test/5/src/release -lqserialdevice
Название: Re: Опять поповоду QextserialPort Отправлено: kuzulis от Ноябрь 07, 2009, 14:20 эммм... druid , по-моему ты скачал старую версию, которая deprecated
Нужно скачать новее версию v 0.1.0 Цитировать DEFINES = _TTY_POSIX_ этого писать не нужно, т.к. это было с устаревшейй версииДля того чтобы подключить библиотеку - смотри примеры в архиве в каталогах: /examples/reader /examples/sreader /examples/writer Название: Re: Опять поповоду QextserialPort Отправлено: druid от Ноябрь 09, 2009, 22:29 Пасиба подключил как в примере заработало :)
Но не велите казнить... новая проблема Я как полжено создаю экземпляр класс а имено: (ипользую либу QSerialDevice_v0.1.0) AbstractSerial *port= new AbstractSerial("/dev/ttyS0"); далее пытаюсь открыть порт if (port->open(QIODevice::ReadOnly | QIODevice::Unbuffered)==false) { ui->label->setText("Port is not opened");} else {ui->label->setText("Port is opened");} в этотм условии присваиваю текст (открыто не отрыто) лейблу у меня этот метод всегда возращает false. далее попробывал найти все доступные устройства через qstrlist = port->serialDevicesAvailable(); вернул аж 4 штуки /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3 В чем проблема что не открывает порт не пойму! :-[ :-[ :-[ Название: Re: Опять поповоду QextserialPort Отправлено: druid от Ноябрь 09, 2009, 22:35 Спаспиба уже нашел пробелму,я запскался не из под roota.
Из под рута заработало? а еще вопрос можно єто делать не из под него а просто из под обіччного пользоаптеля Заранее спасибо! Название: Re: Опять поповоду QextserialPort Отправлено: sLiva от Ноябрь 10, 2009, 19:10 Спаспиба уже нашел пробелму,я запскался не из под roota. Из под рута заработало? а еще вопрос можно єто делать не из под него а просто из под обіччного пользоаптеля Заранее спасибо! Да можно, нужно своей программе (бинарнику) назначить владельца root и дополнить "стики битом", делается с помощью команды Код: chmod gu+s <файл бинарника> Теперь можно запускать прогу от любого пользователя, и она откроет порт. Кстати сам использую данный вариант, но он мне на самом деле не очень нравится, повышение привилегий проге это как то не чисто, может кто знает другой способ получить доступ к последовательному порту (/dev/ttyS*) без полномочий рута, или это не возможно? Название: Re: Опять поповоду QextserialPort Отправлено: Rcus от Ноябрь 10, 2009, 19:41 Ну есть способ проще. В /dev не настоящие файлы, но аттрибуты доступа работают. В частности в Arch'е /dev/ttyS* принадлежат root:uucp (В Ubuntu это соответственно root:dialout). Для использования портов достаточно добавить пользователя в нужную группу, а suid оставить лучше тем программам которым он действительно нужен.
Название: Re: Опять поповоду QextserialPort Отправлено: sLiva от Ноябрь 11, 2009, 19:02 Ну есть способ проще. В /dev не настоящие файлы, но аттрибуты доступа работают. В частности в Arch'е /dev/ttyS* принадлежат root:uucp (В Ubuntu это соответственно root:dialout). Для использования портов достаточно добавить пользователя в нужную группу, а suid оставить лучше тем программам которым он действительно нужен. Да и правда способ норм, спасибо. Название: Re: Опять поповоду QextserialPort Отправлено: demaker от Апрель 19, 2011, 18:47 при подключении интегрированной библиотеки выводится следущее
root@demaker-1015P:/home/demaker/Downloads/QSerialDevice_v0.2.0# make g++ -c -pipe -O2 -fPIC -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4 -Iqserialdevice -Iqserialdeviceinfo -Iqserialdevicewatcher -Ibuild/lib/qintegratedserialdevice/moc -o build/lib/qintegratedserialdevice/obj/abstractserial.o qserialdevice/abstractserial.cpp qserialdevice/abstractserial.cpp:383: fatal error: QtCore/QStringList: No such file or directory compilation terminated. make: *** [build/lib/qintegratedserialdevice/obj/abstractserial.o] Error 1 как быть? Название: Re: Опять поповоду QextserialPort Отправлено: kuzulis от Апрель 19, 2011, 19:52 Цитировать как быть? Скачать новую версию, а ту что у вас - выбросить.Да и на fireforge.net "русским языком сказано" что тут не качайте, качайте в другом месте: Цитировать QSerialDevice Project summary QSerialDevice - Cross-platform library for serial port based on Qt4. It is an alternative QextSerialPort. Warning: now the main development project is here: http://gitorious.org/qserialdevice т.е. брать текущий вариант библиотеки тут: https://gitorious.org/qserialdevice/qserialdevice/archive-tarball/master Название: Re: Опять поповоду QextserialPort Отправлено: demaker от Апрель 20, 2011, 10:57 Скачал вашу новую версию по вашей ссылке , при запуске build в qtcreator мне пишет нета верси я qt , а при консольном строительстве выдает следующее root@demaker-1015P:/home/demaker/Downloads/qserialdevice-qserialdevice# make
cd src/ && make -f Makefile make[1]: Entering directory `/home/demaker/Downloads/qserialdevice-qserialdevice/src' Makefile:307: warning: overriding commands for target `build/obj/ttylocker.o' Makefile:289: warning: ignoring old commands for target `build/obj/ttylocker.o' /usr/bin/moc-qt4 -DQT_NO_DEBUG -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4 -Iqserialdevice -Iqserialdeviceenumerator -Ibuild/moc qserialdevice/abstractserial.h -o build/moc/moc_abstractserial.cpp make[1]: /usr/bin/moc-qt4: Command not found make[1]: *** [build/moc/moc_abstractserial.cpp] Error 127 make[1]: Leaving directory `/home/demaker/Downloads/qserialdevice-qserialdevice/src' make: *** [sub-src-make_default] Error 2 root@demaker-1015P:/home/demaker/Downloads/qserialdevice-qserialdevice# версия qt 4.7.0 Название: Re: Опять поповоду QextserialPort Отправлено: kuzulis от Апрель 20, 2011, 11:34 1. А оно у вас правильно установлено (имею ввиду Qt + компиляторы и т.п.) ?
2. Как вариант, попробуйте закоментировать в qserialdeviceenumerator.pri или qserialdevice.pri это: Цитировать #HEADERS += $$PWD/../qserialdevice/ttylocker.h #SOURCES += $$PWD/../qserialdevice/ttylocker.cpp Если ничего не поможет - значит у Вас что-то не так, проверяйте. Название: Re: Опять поповоду QextserialPort Отправлено: demaker от Апрель 21, 2011, 10:20 переустановил QT 4.7 , при сборке Buildlibrary выдает следущее /home/demaker/Downloads/BuildLibrary-build-desktop/src/../../qserialdevice-qserialdevice/src/qserialdeviceenumerator/serialdeviceenumerator_p_unix.cpp:35: error: libudev.h: No such file or directory udev стоит последний ,через апт-гет на убунте проверил . какие телодвижения можно совершить?
Название: Re: Опять поповоду QextserialPort Отправлено: kuzulis от Апрель 21, 2011, 11:23 Цитировать какие телодвижения можно совершить? Доустановить что-то типа: udev-dev или как там оно в убунте не знаю-- точнее : libudev-dev |