QtSerialPort, Проблема сборки QtSerialPort под Windows |
Здравствуйте, гость ( Вход | Регистрация )
QtSerialPort, Проблема сборки QtSerialPort под Windows |
lkslks |
18.10.2012, 8:40
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 18.10.2012 Пользователь №: 3566 Спасибо сказали: 0 раз(а) Репутация: 0 |
При сборке получаю такое сообщение:
.... g++ -Wl,-s -o release\libSerialPort.a release/serialport.o release/serialportinfo.o release/serialport_win.o release/serialportinfo_win.o -L".\lib" -L"c:\Qt\4.8.3\lib" -lsetupapi -ladvapi32 -lQtCore4 c:/qt/qtcreator-2.5.2/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../libmingw32.a(main.o):main.c:(.text+0x104): undefined reference to `WinMain@16' collect2: ld returned 1 exit status ------------------- Qt 4.8.3 MinGW 4.4.0 Кто может прояснить ситуацию ? |
|
|
NAUGREEM |
25.3.2013, 22:12
Сообщение
#2
|
Студент Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброго всем!
эпопея продолжается...) с блютузом всё классно - вочдог отрабатывает по наличию ошибки (serial->error() > 0) но по USB теперь глюк появился - в какой-то момент неизвестная ошибка 11, и по ней порт закрываестя, и вё повторяется заново... посмотрел номер ошибки в GetLastError() - 997 гугл сказал: Error 997: Overlapped I/O operation is in progress может кто знает - из-за чего она может быть? и может её вообще можно игнорировать? UPD: поглядел внимательнее - ERROR_IO_PENDING там уже есть, а вот ERROR_SUCCESS стоит добавить как QSerialPort::NoError UPD2: когда вернулся в линукс - заметил странную вещь: постоянно висела ошибка 11 с текстом "Неприменимый к данному устройству ioctl" содержимое errno = 25 (ENOTTY) стоит ли игнорировать эту ошибку? или это реальный баг? Сообщение отредактировал NAUGREEM - 26.3.2013, 2:02 |
|
|
kuzulis |
26.3.2013, 10:23
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
NAUGREEM,
напомни плз., о каком типе чипа идет речь? Цитата(NAUGREEM) с блютузом всё классно - вочдог отрабатывает по наличию ошибки (serial->error() > 0) Если ты хочешь отследить именно выдергивание - то проверяй код ошибки только на ResourceError, а не на > 0. Цитата(NAUGREEM) но по USB теперь глюк появился - в какой-то момент неизвестная ошибка 11, и по ней порт закрываестя, и вё повторяется заново... Так ты выведи GetLastError в консоль (именно из метода decodeSystemError())и посмотри какой реальный номер имеет системная ошибка и при каких обстоятельствах: возвращается ли ReadFile с ошибкой или нет, возвращаются ли иные системные вызовы с ошибками? Цитата(NAUGREEM) посмотрел номер ошибки в GetLastError() - 997 гугл сказал: Error 997: Overlapped I/O operation is in progress может кто знает - из-за чего она может быть? и может её вообще можно игнорировать? Это не ошибка, это нормальное поведение, не обращай на эту "ошибку" внимания. Цитата(NAUGREEM) UPD: поглядел внимательнее - ERROR_IO_PENDING там уже есть, а вот ERROR_SUCCESS стоит добавить как QSerialPort::NoError А ERROR_SUCCESS у тебя реально появляется? Если ДА - то при каких обстоятельствах. Цитата(NAUGREEM) UPD2: когда вернулся в линукс - заметил странную вещь: постоянно висела ошибка 11 с текстом "Неприменимый к данному устройству ioctl" содержимое errno = 25 (ENOTTY) стоит ли игнорировать эту ошибку? или это реальный баг? Так посмотри, после чего она появляется в Linux, при каких обчтоятельствах, после какого системного вызова? В общем, поподробнее поисследуй поведение со своим чипом, т.к. мне трудно что-либо советовать и фиксить без сопутствующей информации. Т.к. нужно понять все обстоятельства при которых появляются ошибки! И приведи лог всей цепочки вызовов, т.е. напихай qDebug() с именами методов и интересующими значениями переменных, для того, чтобы у меня сложилась кое-какая картина. Сообщение отредактировал kuzulis - 26.3.2013, 10:28 |
|
|
NAUGREEM |
27.3.2013, 0:13
Сообщение
#4
|
Студент Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: 0 |
напомни плз., о каком типе чипа идет речь? BT хост: HAMA Vid:0a12 Pid:0001 BT стек: стандартный микросовтовский WinXP BT девайс: Bluegiga WT11 USB-UART: CP2103 Если ты хочешь отследить именно выдергивание - то проверяй код ошибки только на ResourceError, а не на > 0. просто выдёргиванием ситуация не обходится - надо отслеживать пропадание WT11 Так ты выведи GetLastError в консоль (именно из метода decodeSystemError())и посмотри какой реальный номер имеет системная ошибка и при каких обстоятельствах: возвращается ли ReadFile с ошибкой или нет, возвращаются ли иные системные вызовы с ошибками? как писал выше: Цитата посмотрел номер ошибки в GetLastError() - 997 гугл сказал: Error 997: Overlapped I/O operation is in progress и ещё GetLastError() == 0 было, при котором serial->error() возвращал 11, так как ERROR_SUCCESS у тебя не обрабатывается... А ERROR_SUCCESS у тебя реально появляется? Если ДА - то при каких обстоятельствах. реально, где-то на waitForReadyRead(), который не дожидался данных, и только на USB Так посмотри, после чего она появляется в Linux, при каких обчтоятельствах, после какого системного вызова? да кажется после каждого может, правда, у меня какой глючёк был - сей девайс виртуалка на время перехватывала я пока просто ENOTTY в игнор поставил) В общем, поподробнее поисследуй поведение со своим чипом, т.к. мне трудно что-либо советовать и фиксить без сопутствующей информации. Т.к. нужно понять все обстоятельства при которых появляются ошибки! И приведи лог всей цепочки вызовов, т.е. напихай qDebug() с именами методов и интересующими значениями переменных, для того, чтобы у меня сложилась кое-какая картина. попробую, но не обещаю скоро... |
|
|
Текстовая версия | Сейчас: 25.11.2024, 4:47 |