QtSerialPort, Проблема сборки QtSerialPort под Windows |
Здравствуйте, гость ( Вход | Регистрация )
QtSerialPort, Проблема сборки QtSerialPort под Windows |
kuzulis |
15.1.2013, 20:28
Сообщение
#21
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Алексей1153, в том то и дело что порт настроен соответствующим образом, скопировал кусок кода из примера terminal, какие еще настройки влияют на работу приложения? Да неужели правильно скопировал?
Едрить-колотить! Да сколько же можно? Доколе все ВЫ будете повторять эти ошибки? Ты делаешь все неправильно! Читай документацию! Или, для начала, хотя-бы проверяй возвращаемые значения методов setXXX()! PS: Блин, задолбали с такими вопросами |
|
|
Litkevich Yuriy |
16.1.2013, 15:57
Сообщение
#22
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Едрить-колотить! Да сколько же можно? Доколе все ВЫ будете повторять эти ошибки?Ты делаешь все неправильно! Читай документацию! Или, для начала, хотя-бы проверяй возвращаемые значения методов setXXX()!PS: Блин, задолбали с такими вопросами Денис, а это всё от неестественности, я тебе ещё на прогорге про это говрил.Гораздо естественнее: создать объект, настроить, а потом использовать. Поэтому люди так и делают. |
|
|
NAUGREEM |
16.1.2013, 17:26
Сообщение
#23
|
Студент Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте!
Проблема тоже в винде (в линуксе всё работает)... порт открываю так:
далее пишу в порт строку байтов 'write()', а из порта 'read()' приходит в бесконечном цикле первый байт строки... winXP|win7|win8 - одна беда(( на старой версии QtSerialPort такой проблемы в винде небыло |
|
|
kuzulis |
16.1.2013, 18:28
Сообщение
#24
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
далее пишу в порт строку байтов 'write()', а из порта 'read()' приходит в бесконечном цикле первый байт строки... winXP|win7|win8 - одна беда(( на старой версии QtSerialPort такой проблемы в винде небыло Ну чтож, приведи минимальный компилябельный пример, который воспроизводит проблему. Из приведенного тобой описания ничего не понятно. |
|
|
NAUGREEM |
16.1.2013, 19:15
Сообщение
#25
|
Студент Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: 0 |
вот простой пример:
запущен на winXP SP3, qt-4.8.4, MinGW-w64 - for 32 bit Windows (gcc-4.7.1) |
|
|
kuzulis |
16.1.2013, 20:05
Сообщение
#26
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
вот простой пример: ... ... ... запущен на winXP SP3, qt-4.8.4, MinGW-w64 - for 32 bit Windows (gcc-4.7.1) И опять же, ты тоже неправильно используешь библиотеку. В твоем случае см. в сторону примера BlockingMaster и внимательно читай комментарии в нем (точнее в qtserialport\doc\src\examples\). Сообщение отредактировал kuzulis - 16.1.2013, 20:08 |
|
|
NAUGREEM |
17.1.2013, 13:22
Сообщение
#27
|
Студент Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: 0 |
Экспериментируя с кодом заметил забавную вещь:
если строку
заменить на
то всё отлично работает отсюда вопрос: почему в виндовсе при пустом буфере чтения функция bytesAvailable() возвращает 512? |
|
|
kuzulis |
17.1.2013, 17:03
Сообщение
#28
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
|
|
|
NAUGREEM |
17.1.2013, 19:27
Сообщение
#29
|
Студент Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: 0 |
что-то не собирается((
Раскрывающийся текст g++ -c -pipe -fno-keep-inline-dllexport -g -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I'../../Qt/4.8.4/include/QtCore' -I'../../Qt/4.8.4/include' -I'../qtserialport/src/serialport' -I'../../Qt/4.8.4/inc ../qtserialport/src/serialport/serialport.cpp:382:1: warning: 'QtAddOn::SerialPort::SerialPort::SerialPort(QObject*)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:393:1: warning: 'QtAddOn::SerialPort::SerialPort::SerialPort(const QString&, QObject*)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:405:1: warning: 'QtAddOn::SerialPort::SerialPort::SerialPort(const QtAddOn::SerialPort::SerialPortInfo&, QObject*)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:415:1: warning: 'virtual QtAddOn::SerialPort::SerialPort::~SerialPort()' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:430:6: warning: 'void QtAddOn::SerialPort::SerialPort::setPort(const QString&)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. ../qtserialport/src/serialport/serialport.cpp:441:6: warning: 'void QtAddOn::SerialPort::SerialPort::setPort(const QtAddOn::SerialPort::SerialPortInfo&)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. ../qtserialport/src/serialport/serialport.cpp:483:9: warning: 'QString QtAddOn::SerialPort::SerialPort::portName() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:500:6: warning: 'virtual bool QtAddOn::SerialPort::SerialPort::open(QIODevice::OpenMode)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:530:6: warning: 'virtual void QtAddOn::SerialPort::SerialPort::close()' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. ../qtserialport/src/serialport/serialport.cpp:553:6: warning: 'void QtAddOn::SerialPort::SerialPort::setRestoreSettingsOnClose(bool)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:568:6: warning: 'bool QtAddOn::SerialPort::SerialPort::restoreSettingsOnClose() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:599:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setRate(qint32, QtAddOn::SerialPort::SerialPort::Directions)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:613:8: warning: 'qint32 QtAddOn::SerialPort::SerialPort::rate(QtAddOn::SerialPort::SerialPort::Direction s) const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:638:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setDataBits(QtAddOn::SerialPort::SerialPort::Da taBits)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:649:22: warning: 'QtAddOn::SerialPort::SerialPort::DataBits QtAddOn::SerialPort::SerialPort::dataBits() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:672:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setParity(QtAddOn::SerialPort::SerialPort::Pari ty)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:683:20: warning: 'QtAddOn::SerialPort::SerialPort::Parity QtAddOn::SerialPort::SerialPort::parity() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:705:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setStopBits(QtAddOn::SerialPort::SerialPort::St opBits)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:716:22: warning: 'QtAddOn::SerialPort::SerialPort::StopBits QtAddOn::SerialPort::SerialPort::stopBits() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:738:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setFlowControl(QtAddOn::SerialPort::SerialPort: :FlowControl)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:749:25: warning: 'QtAddOn::SerialPort::SerialPort::FlowControl QtAddOn::SerialPort::SerialPort::flowControl() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:773:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setDtr(bool)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:784:6: warning: 'bool QtAddOn::SerialPort::SerialPort::dtr() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:809:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setRts(bool)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:820:6: warning: 'bool QtAddOn::SerialPort::SerialPort::rts() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:844:19: warning: 'QtAddOn::SerialPort::SerialPort::Lines QtAddOn::SerialPort::SerialPort::lines() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:864:6: warning: 'bool QtAddOn::SerialPort::SerialPort::flush()' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:876:6: warning: 'bool QtAddOn::SerialPort::SerialPort::clear(QtAddOn::SerialPort::SerialPort::Directio ns)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:907:6: warning: 'virtual bool QtAddOn::SerialPort::SerialPort::atEnd() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:921:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setDataErrorPolicy(QtAddOn::SerialPort::SerialP ort::DataErrorPolicy)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:934:29: warning: 'QtAddOn::SerialPort::SerialPort::DataErrorPolicy QtAddOn::SerialPort::SerialPort::dataErrorPolicy() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:962:23: warning: 'QtAddOn::SerialPort::SerialPort::PortError QtAddOn::SerialPort::SerialPort::error() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:968:6: warning: 'void QtAddOn::SerialPort::SerialPort::clearError()' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. ../qtserialport/src/serialport/serialport.cpp:993:8: warning: 'qint64 QtAddOn::SerialPort::SerialPort::readBufferSize() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1015:6: warning: 'void QtAddOn::SerialPort::SerialPort::setReadBufferSize(qint64)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1027:6: warning: 'virtual bool QtAddOn::SerialPort::SerialPort::isSequential() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1037:8: warning: 'virtual qint64 QtAddOn::SerialPort::SerialPort::bytesAvailable() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1050:8: warning: 'virtual qint64 QtAddOn::SerialPort::SerialPort::bytesToWrite() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1062:6: warning: 'virtual bool QtAddOn::SerialPort::SerialPort::canReadLine() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1080:6: warning: 'virtual bool QtAddOn::SerialPort::SerialPort::waitForReadyRead(int)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1088:6: warning: 'virtual bool QtAddOn::SerialPort::SerialPort::waitForBytesWritten(int)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1107:6: warning: 'bool QtAddOn::SerialPort::SerialPort::sendBreak(int)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1121:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setBreak(bool)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. ../qtserialport/src/serialport/serialport.cpp:1129:8: warning: 'virtual qint64 QtAddOn::SerialPort::SerialPort::readData(char*, qint64)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1137:8: warning: 'virtual qint64 QtAddOn::SerialPort::SerialPort::readLineData(char*, qint64)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1144:8: warning: 'virtual qint64 QtAddOn::SerialPort::SerialPort::writeData(const char*, qint64)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. In file included from ../qtserialport/src/serialport/serialport.cpp:1161:0:. debug/moc_serialport.cpp:191:6: warning: 'static void QtAddOn::SerialPort::SerialPort::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. debug/moc_serialport.cpp:228:40: warning: 'QtAddOn::SerialPort::SerialPort::staticMetaObjectExtraData' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. debug/moc_serialport.cpp:232:31: warning: 'QtAddOn::SerialPort::SerialPort::staticMetaObject' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:241:20: warning: 'virtual const QMetaObject* QtAddOn::SerialPort::SerialPort::metaObject() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. debug/moc_serialport.cpp:246:7: warning: 'virtual void* QtAddOn::SerialPort::SerialPort::qt_metacast(const char*)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. debug/moc_serialport.cpp:254:5: warning: 'virtual int QtAddOn::SerialPort::SerialPort::qt_metacall(QMetaObject::Call, int, void**)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. debug/moc_serialport.cpp:315:6: warning: 'void QtAddOn::SerialPort::SerialPort::rateChanged(qint32, QtAddOn::SerialPort::SerialPort::Directions)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. In file included from ../qtserialport/src/serialport/serialport.cpp:1161:0:. debug/moc_serialport.cpp:322:6: warning: 'void QtAddOn::SerialPort::SerialPort::dataBitsChanged(QtAddOn::SerialPort::SerialPort ::DataBits)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:329:6: warning: 'void QtAddOn::SerialPort::SerialPort::parityChanged(QtAddOn::SerialPort::SerialPort:: Parity)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:336:6: warning: 'void QtAddOn::SerialPort::SerialPort::stopBitsChanged(QtAddOn::SerialPort::SerialPort ::StopBits)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:343:6: warning: 'void QtAddOn::SerialPort::SerialPort::flowControlChanged(QtAddOn::SerialPort::SerialP ort::FlowControl)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:350:6: warning: 'void QtAddOn::SerialPort::SerialPort::dataErrorPolicyChanged(QtAddOn::SerialPort::Ser ialPort::DataErrorPolicy)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:357:6: warning: 'void QtAddOn::SerialPort::SerialPort::dtrChanged(bool)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:364:6: warning: 'void QtAddOn::SerialPort::SerialPort::rtsChanged(bool)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:371:6: warning: 'void QtAddOn::SerialPort::SerialPort::errorChanged(QtAddOn::SerialPort::SerialPort::P ortError)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:378:6: warning: 'void QtAddOn::SerialPort::SerialPort::restoreSettingsOnCloseChanged(bool)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. In file included from ../qtserialport/src/serialport/serialport.cpp:1161:0:. debug/moc_serialport.cpp:228:28: error: definition of static data member 'QtAddOn::SerialPort::SerialPort::staticMetaObjectExtraData' of dllimport'd class. mingw32-make[1]: Leaving directory `C:/projects/TestSerialPort-build-Debug'. mingw32-make[1]: *** [debug/serialport.o] Error 1. mingw32-make: *** [debug] Error 2 .pro
|
|
|
kuzulis |
17.1.2013, 20:02
Сообщение
#30
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Там в "serialport-global.h" надо закомментировать Q_DECL_XXX дефайны:
|
|
|
Текстовая версия | Сейчас: 25.11.2024, 6:53 |