Ошибка отладки Qt: "при разборе списка целевой библиотеки: неправильно сформирован (неверный токен)"

Я отлаживаю приложение, разработанное в Qt/C++, используя QtCreator. Мое приложение считывает данные с последовательного порта, используя QextSerialPort, где последовательный порт подключен к контроллеру Rhino Mark IV.

int  bytesRead;
char buffer[BUFFER_SIZE];
if (_serialPort->bytesAvailable() > 0
    && (bytesRead = _serialPort->read(buffer, BUFFER_SIZE)) > 0)
{
    _comBuffer.append(buffer, bytesRead);
    buffer[bytesRead+1] = 0; // for debugging purposes
    qDebug(buffer);          // for debugging purposes
}

У меня возникли проблемы с этим, потому что я пытаюсь прочитать некоторые данные ASCII, но в буфер попадают некоторые странные символы. Например, код ASCII для числа ноль ('0') заменяется другим кодом, который отображается отладчиком и печатается как qDebug как'.

Кроме того, я получаю следующее сообщение на вкладке "Вывод приложения": while parsing target library list: not well-formed (invalid token),

Интересно, почему я не получаю соответствующий код ASCII с QextSerialPort. Это проблема QextSerialPort или контроллера Rhino Mark IV? Я просматриваю трафик через последовательный порт на двух мониторах, и символы ASCII правильно отображаются на мониторах. Таким образом, я пришел к выводу, что это не проблема контроллера или канала связи.

Что означает сообщение while parsing target library list: not well-formed (invalid token) значит и почему это вызвано?

1 ответ

Решение

Правильно ли вы настроили последовательный порт в вашем приложении (например, скорость передачи, стоп-биты и т. Д.)?

Кроме того, вы не должны добавлять 1 к bytesRead когда ноль завершает буфер, так как это допускает один нежелательный байт в конце строки.

Это сообщение об ошибке генерируется GDB, а не Qt. Это может быть связано с использованием файлов / папок с нелатинскими именами.

Другие вопросы по тегам