Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How to use QDebug in QT console
Forum Updated to NodeBB v4.3 + New Features

How to use QDebug in QT console

Scheduled Pinned Locked Moved Solved General and Desktop
5 Posts 3 Posters 40.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V Offline
    V Offline
    victor wang
    wrote on 21 Sept 2017, 07:17 last edited by
    #1

    Hi All,
    I'm using qt5.5 on my computer and Linux+QT for my OS system.
    I'm using qtcreator to creat a new project with QT Console.
    And this is my program.

    #include <QCoreApplication>
    #include <QDebug>
    #include <QtSerialPort/QSerialPort>
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        bool ignition_bios_name_error=false;
        QSerialPort comport;
        QString comportstring="/dev/ttymxc2";
        comport.setPortName(comportstring);
        comport.setBaudRate(QSerialPort::Baud9600);
        comport.setDataBits(QSerialPort::Data8);
        comport.setParity(QSerialPort::NoParity);
        comport.setStopBits(QSerialPort::OneStop);
    
        const char BIOS_COM[4]={0x04,0xA0,0x00,0x5C};
        const char BIOS_name[4]={0x04,0xA0,0x01,0x5B};
    
        if (!comport.open(QIODevice::ReadWrite)) {
            qDebug("cannot open");//<<comport.errorString();
        }
        qint64 bytesWritten = comport.write(BIOS_COM,sizeof(BIOS_COM));
    
        if (bytesWritten == -1)
        {
            qDebug("Failed to write the data to port");
        }
        else if (!comport.waitForBytesWritten(80))
        {
            qDebug("Operation timed out or an error occurred for port");
        }
        QByteArray readData=comport.readAll();
        while(comport.waitForReadyRead(80))
            readData.append(comport.readAll());
        if (comport.error() == QSerialPort::ReadError)
        {
            QDebug("read error");
            ignition_bios_name_error = true;
        }
        else if (comport.error() == QSerialPort::TimeoutError && readData.isEmpty())
        {
            QDebug("timed out");
            ignition_bios_name_error = true;
        }
        if(readData.contains("93FA1000WN0A"))
        {
            qDebug()<<"NAME: "+readData.constData();
        }
        else
        {
            qDebug("wrong data");
            ignition_bios_name_error = true;
        }
        bytesWritten = comport.write(BIOS_name,sizeof(BIOS_name));
    
        if (bytesWritten == -1)
        {
            qDebug("Failed to write the data to port");
        }
        else if (!comport.waitForBytesWritten(80))
        {
            qDebug("Operation timed out or an error occurred for port");
        }
        readData=comport.readAll();
        while(comport.waitForReadyRead(80))
            readData.append(comport.readAll());
        if (comport.error() == QSerialPort::ReadError)
        {
           QDebug("BIOS read error");
        }
        else if (comport.error() == QSerialPort::TimeoutError && readData.isEmpty())
        {
            QDebug("BIOS timed out");
        }
        else if(readData.contains("FA3A110-000000000-000-VV120-WN"))
        {
            if(!ignition_bios_name_error)
            {
                qDebug()<<"BIOS_version: "+readData.constData()+"  And BIOS_name error";
            }
            else
            {
                qDebug()<<"BIOS_version: "+readData.constData();
            }
        }
    
        return a.exec();
    }
    

    When I compile with qmake then it will give me the error.

    arm-poky-linux-gnueabi-g++  -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/mnt/raid115/victor/freescale/opt/fsl-imx-wayland/4.1.15/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi -c -pipe  -O2 -pipe -g -feliminate-unused-debug-types -O2 -DLINUX=1 -DEGL_API_FB=1 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_SERIALPORT_LIB -DQT_CORE_LIB -I. -I../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5 -I../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtSerialPort -I../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore -I. -I../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/qt5/mkspecs/linux-oe-g++ -o main.o main.cpp
    main.cpp: In function 'int main(int, char**)':
    main.cpp:41:28: error: no matching function for call to 'QDebug::QDebug(const char [11])'
             QDebug("read error");
                                ^
    In file included from ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/QDebug:1:0,
                     from main.cpp:2:
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note: candidate: QDebug::QDebug(const QDebug&)
         inline QDebug(const QDebug &o):stream(o.stream) { ++stream->ref; }
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note:   no known conversion for argument 1 from 'const char [11]' to 'const QDebug&'
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note: candidate: QDebug::QDebug(QtMsgType)
         inline QDebug(QtMsgType t) : stream(new Stream(t)) {}
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note:   no known conversion for argument 1 from 'const char [11]' to 'QtMsgType'
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note: candidate: QDebug::QDebug(QString*)
         inline QDebug(QString *string) : stream(new Stream(string)) {}
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note:   no known conversion for argument 1 from 'const char [11]' to 'QString*'
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note: candidate: QDebug::QDebug(QIODevice*)
         inline QDebug(QIODevice *device) : stream(new Stream(device)) {}
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note:   no known conversion for argument 1 from 'const char [11]' to 'QIODevice*'
    main.cpp:46:27: error: no matching function for call to 'QDebug::QDebug(const char [10])'
             QDebug("timed out");
                               ^
    In file included from ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/QDebug:1:0,
                     from main.cpp:2:
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note: candidate: QDebug::QDebug(const QDebug&)
         inline QDebug(const QDebug &o):stream(o.stream) { ++stream->ref; }
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note:   no known conversion for argument 1 from 'const char [10]' to 'const QDebug&'
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note: candidate: QDebug::QDebug(QtMsgType)
         inline QDebug(QtMsgType t) : stream(new Stream(t)) {}
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note:   no known conversion for argument 1 from 'const char [10]' to 'QtMsgType'
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note: candidate: QDebug::QDebug(QString*)
         inline QDebug(QString *string) : stream(new Stream(string)) {}
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note:   no known conversion for argument 1 from 'const char [10]' to 'QString*'
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note: candidate: QDebug::QDebug(QIODevice*)
         inline QDebug(QIODevice *device) : stream(new Stream(device)) {}
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note:   no known conversion for argument 1 from 'const char [10]' to 'QIODevice*'
    main.cpp:51:47: error: invalid operands of types 'const char [7]' and 'const char*' to binary 'operator+'
             qDebug()<<"NAME: "+readData.constData();
                                                   ^
    main.cpp:73:32: error: no matching function for call to 'QDebug::QDebug(const char [16])'
            QDebug("BIOS read error");
                                    ^
    In file included from ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/QDebug:1:0,
                     from main.cpp:2:
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note: candidate: QDebug::QDebug(const QDebug&)
         inline QDebug(const QDebug &o):stream(o.stream) { ++stream->ref; }
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note:   no known conversion for argument 1 from 'const char [16]' to 'const QDebug&'
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note: candidate: QDebug::QDebug(QtMsgType)
         inline QDebug(QtMsgType t) : stream(new Stream(t)) {}
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note:   no known conversion for argument 1 from 'const char [16]' to 'QtMsgType'
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note: candidate: QDebug::QDebug(QString*)
         inline QDebug(QString *string) : stream(new Stream(string)) {}
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note:   no known conversion for argument 1 from 'const char [16]' to 'QString*'
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note: candidate: QDebug::QDebug(QIODevice*)
         inline QDebug(QIODevice *device) : stream(new Stream(device)) {}
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note:   no known conversion for argument 1 from 'const char [16]' to 'QIODevice*'
    main.cpp:77:32: error: no matching function for call to 'QDebug::QDebug(const char [15])'
             QDebug("BIOS timed out");
                                    ^
    In file included from ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/QDebug:1:0,
                     from main.cpp:2:
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note: candidate: QDebug::QDebug(const QDebug&)
         inline QDebug(const QDebug &o):stream(o.stream) { ++stream->ref; }
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note:   no known conversion for argument 1 from 'const char [15]' to 'const QDebug&'
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note: candidate: QDebug::QDebug(QtMsgType)
         inline QDebug(QtMsgType t) : stream(new Stream(t)) {}
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note:   no known conversion for argument 1 from 'const char [15]' to 'QtMsgType'
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note: candidate: QDebug::QDebug(QString*)
         inline QDebug(QString *string) : stream(new Stream(string)) {}
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note:   no known conversion for argument 1 from 'const char [15]' to 'QString*'
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note: candidate: QDebug::QDebug(QIODevice*)
         inline QDebug(QIODevice *device) : stream(new Stream(device)) {}
                ^
    ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note:   no known conversion for argument 1 from 'const char [15]' to 'QIODevice*'
    main.cpp:83:59: error: invalid operands of types 'const char [15]' and 'const char*' to binary 'operator+'
                 qDebug()<<"BIOS_version: "+readData.constData()+"  And BIOS_name error";
                                                               ^
    main.cpp:87:59: error: invalid operands of types 'const char [15]' and 'const char*' to binary 'operator+'
                 qDebug()<<"BIOS_version: "+readData.constData();
                                                               ^
    make: *** [main.o] Error 1
    

    How to fix this problem?

    Thanks in Advanced!

    J 1 Reply Last reply 21 Sept 2017, 07:28
    0
    • V victor wang
      21 Sept 2017, 07:17

      Hi All,
      I'm using qt5.5 on my computer and Linux+QT for my OS system.
      I'm using qtcreator to creat a new project with QT Console.
      And this is my program.

      #include <QCoreApplication>
      #include <QDebug>
      #include <QtSerialPort/QSerialPort>
      
      int main(int argc, char *argv[])
      {
          QCoreApplication a(argc, argv);
      
          bool ignition_bios_name_error=false;
          QSerialPort comport;
          QString comportstring="/dev/ttymxc2";
          comport.setPortName(comportstring);
          comport.setBaudRate(QSerialPort::Baud9600);
          comport.setDataBits(QSerialPort::Data8);
          comport.setParity(QSerialPort::NoParity);
          comport.setStopBits(QSerialPort::OneStop);
      
          const char BIOS_COM[4]={0x04,0xA0,0x00,0x5C};
          const char BIOS_name[4]={0x04,0xA0,0x01,0x5B};
      
          if (!comport.open(QIODevice::ReadWrite)) {
              qDebug("cannot open");//<<comport.errorString();
          }
          qint64 bytesWritten = comport.write(BIOS_COM,sizeof(BIOS_COM));
      
          if (bytesWritten == -1)
          {
              qDebug("Failed to write the data to port");
          }
          else if (!comport.waitForBytesWritten(80))
          {
              qDebug("Operation timed out or an error occurred for port");
          }
          QByteArray readData=comport.readAll();
          while(comport.waitForReadyRead(80))
              readData.append(comport.readAll());
          if (comport.error() == QSerialPort::ReadError)
          {
              QDebug("read error");
              ignition_bios_name_error = true;
          }
          else if (comport.error() == QSerialPort::TimeoutError && readData.isEmpty())
          {
              QDebug("timed out");
              ignition_bios_name_error = true;
          }
          if(readData.contains("93FA1000WN0A"))
          {
              qDebug()<<"NAME: "+readData.constData();
          }
          else
          {
              qDebug("wrong data");
              ignition_bios_name_error = true;
          }
          bytesWritten = comport.write(BIOS_name,sizeof(BIOS_name));
      
          if (bytesWritten == -1)
          {
              qDebug("Failed to write the data to port");
          }
          else if (!comport.waitForBytesWritten(80))
          {
              qDebug("Operation timed out or an error occurred for port");
          }
          readData=comport.readAll();
          while(comport.waitForReadyRead(80))
              readData.append(comport.readAll());
          if (comport.error() == QSerialPort::ReadError)
          {
             QDebug("BIOS read error");
          }
          else if (comport.error() == QSerialPort::TimeoutError && readData.isEmpty())
          {
              QDebug("BIOS timed out");
          }
          else if(readData.contains("FA3A110-000000000-000-VV120-WN"))
          {
              if(!ignition_bios_name_error)
              {
                  qDebug()<<"BIOS_version: "+readData.constData()+"  And BIOS_name error";
              }
              else
              {
                  qDebug()<<"BIOS_version: "+readData.constData();
              }
          }
      
          return a.exec();
      }
      

      When I compile with qmake then it will give me the error.

      arm-poky-linux-gnueabi-g++  -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/mnt/raid115/victor/freescale/opt/fsl-imx-wayland/4.1.15/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi -c -pipe  -O2 -pipe -g -feliminate-unused-debug-types -O2 -DLINUX=1 -DEGL_API_FB=1 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_SERIALPORT_LIB -DQT_CORE_LIB -I. -I../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5 -I../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtSerialPort -I../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore -I. -I../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/qt5/mkspecs/linux-oe-g++ -o main.o main.cpp
      main.cpp: In function 'int main(int, char**)':
      main.cpp:41:28: error: no matching function for call to 'QDebug::QDebug(const char [11])'
               QDebug("read error");
                                  ^
      In file included from ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/QDebug:1:0,
                       from main.cpp:2:
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note: candidate: QDebug::QDebug(const QDebug&)
           inline QDebug(const QDebug &o):stream(o.stream) { ++stream->ref; }
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note:   no known conversion for argument 1 from 'const char [11]' to 'const QDebug&'
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note: candidate: QDebug::QDebug(QtMsgType)
           inline QDebug(QtMsgType t) : stream(new Stream(t)) {}
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note:   no known conversion for argument 1 from 'const char [11]' to 'QtMsgType'
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note: candidate: QDebug::QDebug(QString*)
           inline QDebug(QString *string) : stream(new Stream(string)) {}
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note:   no known conversion for argument 1 from 'const char [11]' to 'QString*'
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note: candidate: QDebug::QDebug(QIODevice*)
           inline QDebug(QIODevice *device) : stream(new Stream(device)) {}
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note:   no known conversion for argument 1 from 'const char [11]' to 'QIODevice*'
      main.cpp:46:27: error: no matching function for call to 'QDebug::QDebug(const char [10])'
               QDebug("timed out");
                                 ^
      In file included from ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/QDebug:1:0,
                       from main.cpp:2:
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note: candidate: QDebug::QDebug(const QDebug&)
           inline QDebug(const QDebug &o):stream(o.stream) { ++stream->ref; }
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note:   no known conversion for argument 1 from 'const char [10]' to 'const QDebug&'
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note: candidate: QDebug::QDebug(QtMsgType)
           inline QDebug(QtMsgType t) : stream(new Stream(t)) {}
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note:   no known conversion for argument 1 from 'const char [10]' to 'QtMsgType'
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note: candidate: QDebug::QDebug(QString*)
           inline QDebug(QString *string) : stream(new Stream(string)) {}
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note:   no known conversion for argument 1 from 'const char [10]' to 'QString*'
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note: candidate: QDebug::QDebug(QIODevice*)
           inline QDebug(QIODevice *device) : stream(new Stream(device)) {}
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note:   no known conversion for argument 1 from 'const char [10]' to 'QIODevice*'
      main.cpp:51:47: error: invalid operands of types 'const char [7]' and 'const char*' to binary 'operator+'
               qDebug()<<"NAME: "+readData.constData();
                                                     ^
      main.cpp:73:32: error: no matching function for call to 'QDebug::QDebug(const char [16])'
              QDebug("BIOS read error");
                                      ^
      In file included from ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/QDebug:1:0,
                       from main.cpp:2:
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note: candidate: QDebug::QDebug(const QDebug&)
           inline QDebug(const QDebug &o):stream(o.stream) { ++stream->ref; }
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note:   no known conversion for argument 1 from 'const char [16]' to 'const QDebug&'
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note: candidate: QDebug::QDebug(QtMsgType)
           inline QDebug(QtMsgType t) : stream(new Stream(t)) {}
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note:   no known conversion for argument 1 from 'const char [16]' to 'QtMsgType'
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note: candidate: QDebug::QDebug(QString*)
           inline QDebug(QString *string) : stream(new Stream(string)) {}
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note:   no known conversion for argument 1 from 'const char [16]' to 'QString*'
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note: candidate: QDebug::QDebug(QIODevice*)
           inline QDebug(QIODevice *device) : stream(new Stream(device)) {}
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note:   no known conversion for argument 1 from 'const char [16]' to 'QIODevice*'
      main.cpp:77:32: error: no matching function for call to 'QDebug::QDebug(const char [15])'
               QDebug("BIOS timed out");
                                      ^
      In file included from ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/QDebug:1:0,
                       from main.cpp:2:
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note: candidate: QDebug::QDebug(const QDebug&)
           inline QDebug(const QDebug &o):stream(o.stream) { ++stream->ref; }
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:89:12: note:   no known conversion for argument 1 from 'const char [15]' to 'const QDebug&'
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note: candidate: QDebug::QDebug(QtMsgType)
           inline QDebug(QtMsgType t) : stream(new Stream(t)) {}
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:88:12: note:   no known conversion for argument 1 from 'const char [15]' to 'QtMsgType'
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note: candidate: QDebug::QDebug(QString*)
           inline QDebug(QString *string) : stream(new Stream(string)) {}
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:87:12: note:   no known conversion for argument 1 from 'const char [15]' to 'QString*'
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note: candidate: QDebug::QDebug(QIODevice*)
           inline QDebug(QIODevice *device) : stream(new Stream(device)) {}
                  ^
      ../../../sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qdebug.h:86:12: note:   no known conversion for argument 1 from 'const char [15]' to 'QIODevice*'
      main.cpp:83:59: error: invalid operands of types 'const char [15]' and 'const char*' to binary 'operator+'
                   qDebug()<<"BIOS_version: "+readData.constData()+"  And BIOS_name error";
                                                                 ^
      main.cpp:87:59: error: invalid operands of types 'const char [15]' and 'const char*' to binary 'operator+'
                   qDebug()<<"BIOS_version: "+readData.constData();
                                                                 ^
      make: *** [main.o] Error 1
      

      How to fix this problem?

      Thanks in Advanced!

      J Offline
      J Offline
      joeQ
      wrote on 21 Sept 2017, 07:28 last edited by
      #2

      @victor-wang hi,friend,welcome.

      You write qDebug() to QDebug(), Note qDebug

      if (comport.error() == QSerialPort::ReadError)
          {
              QDebug("read error"); ///< use qDebug("......");
              ignition_bios_name_error = true;
          }
          else if (comport.error() == QSerialPort::TimeoutError && readData.isEmpty())
          {
              QDebug("timed out"); ///< use qDebug("......");
              ignition_bios_name_error = true;
          }
      

      Just do it!

      J 1 Reply Last reply 21 Sept 2017, 08:12
      1
      • J joeQ
        21 Sept 2017, 07:28

        @victor-wang hi,friend,welcome.

        You write qDebug() to QDebug(), Note qDebug

        if (comport.error() == QSerialPort::ReadError)
            {
                QDebug("read error"); ///< use qDebug("......");
                ignition_bios_name_error = true;
            }
            else if (comport.error() == QSerialPort::TimeoutError && readData.isEmpty())
            {
                QDebug("timed out"); ///< use qDebug("......");
                ignition_bios_name_error = true;
            }
        
        J Offline
        J Offline
        jsulm
        Lifetime Qt Champion
        wrote on 21 Sept 2017, 08:12 last edited by
        #3

        @joeQ @victor-wang Actually it should be:

        if (comport.error() == QSerialPort::ReadError)
        {
            qDebug() << "read error"; ///< use qDebug("......");
            ignition_bios_name_error = true;
        }
        else if (comport.error() == QSerialPort::TimeoutError && readData.isEmpty())
        {
            qDebug() << "timed out"; ///< use qDebug("......");
            ignition_bios_name_error = true;
         }
        

        It is explained in the documentation even with examples: http://doc.qt.io/qt-5/qdebug.html

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        J 1 Reply Last reply 21 Sept 2017, 08:50
        1
        • J jsulm
          21 Sept 2017, 08:12

          @joeQ @victor-wang Actually it should be:

          if (comport.error() == QSerialPort::ReadError)
          {
              qDebug() << "read error"; ///< use qDebug("......");
              ignition_bios_name_error = true;
          }
          else if (comport.error() == QSerialPort::TimeoutError && readData.isEmpty())
          {
              qDebug() << "timed out"; ///< use qDebug("......");
              ignition_bios_name_error = true;
           }
          

          It is explained in the documentation even with examples: http://doc.qt.io/qt-5/qdebug.html

          J Offline
          J Offline
          joeQ
          wrote on 21 Sept 2017, 08:50 last edited by joeQ
          #4

          @jsulm

          Thank you.

          is it also OK ?

          some one used to use C printf format, so, he like below format

          ///< int num. char* pstr
          qDebug("%d %s",num,pstr); ///< it also can run.
          
          // or
          str = QString("xxxxxx");
          qDebug("%s",qPrintable(str));
          

          does it must be qDebug() << XXX ?

          maybe qDebug() << XXX is strict.

          oh, I find the Qt Reference

          If you pass the function a format string and a list of arguments, it works in similar way to the C printf() function. The format should be a Latin-1 string.
          Example:

          qDebug("Items in list: %d", myList.size());

          Just do it!

          V 1 Reply Last reply 21 Sept 2017, 09:29
          0
          • J joeQ
            21 Sept 2017, 08:50

            @jsulm

            Thank you.

            is it also OK ?

            some one used to use C printf format, so, he like below format

            ///< int num. char* pstr
            qDebug("%d %s",num,pstr); ///< it also can run.
            
            // or
            str = QString("xxxxxx");
            qDebug("%s",qPrintable(str));
            

            does it must be qDebug() << XXX ?

            maybe qDebug() << XXX is strict.

            oh, I find the Qt Reference

            If you pass the function a format string and a list of arguments, it works in similar way to the C printf() function. The format should be a Latin-1 string.
            Example:

            qDebug("Items in list: %d", myList.size());

            V Offline
            V Offline
            victor wang
            wrote on 21 Sept 2017, 09:29 last edited by
            #5

            @joeQ
            @jsulm
            Thank you so much for helping me.
            I have to apologize that i make a such stupid mistake.
            I do not see that I type qDebug -> QDebug.

            And I've try both two command as following, It all works perfectly.

            qDebug("text");
            qDebug()<<"test";
            

            Also I've try modify my wrong program from

            qDebug()<<"BIOS_version: "+readData.constData()+"  And BIOS_name error";
            

            to

            qDebug()<<"BIOS_version: ";
            qDebug("%s",readData.constData());
            qDebug()<<"  And BIOS_name error";
            

            And It works also perfectly!

            Again thanks for helping me!

            1 Reply Last reply
            0

            3/5

            21 Sept 2017, 08:12

            • Login

            • Login or register to search.
            3 out of 5
            • First post
              3/5
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved