1

我正在研究 qwt 和 qextserialport 示例。到目前为止,我以示波器为例并添加了打开和配置端口的行。当我编译代码编译器给出以下错误。这是编译器输出:

12:21:41: Running build steps for project oscilloscope...
12:21:41: Configuration unchanged, skipping qmake step.
12:21:41: Starting: "C:\QtSDK\mingw\bin\mingw32-make.exe" 
C:/QtSDK/mingw/bin/mingw32-make.exe -f Makefile.Debug all
mingw32-make.exe[1]: Entering directory `C:/Users/Edgaras/Downloads/qwt-6.0.0-rc5/examples/oscilloscope-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug'
compiling ../oscilloscope/main.cpp 
linking ..\..\examples\bin\oscilloscope.exe 
mingw32-make.exe[1]: Leaving directory `C:/Users/Edgaras/Downloads/qwt-6.0.0-rc5/examples/oscilloscope-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug'
./debug\main.o: In function `Z5qMainiPPc':
C:\Users\Edgaras\Downloads\qwt-6.0.0-rc5\examples\oscilloscope-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug/../oscilloscope/main.cpp:33: undefined reference to `QextSerialPort::QextSerialPort(QString const&, QextSerialPort::QueryMode, QObject*)'
C:\Users\Edgaras\Downloads\qwt-6.0.0-rc5\examples\oscilloscope-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug/../oscilloscope/main.cpp:42: undefined reference to `QextSerialPort::setBaudRate(BaudRateType)'
C:\Users\Edgaras\Downloads\qwt-6.0.0-rc5\examples\oscilloscope-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug/../oscilloscope/main.cpp:43: undefined reference to `QextSerialPort::setQueryMode(QextSerialPort::QueryMode)'
C:\Users\Edgaras\Downloads\qwt-6.0.0-rc5\examples\oscilloscope-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug/../oscilloscope/main.cpp:44: undefined reference to `QextSerialPort::setFlowControl(FlowType)'
C:\Users\Edgaras\Downloads\qwt-6.0.0-rc5\examples\oscilloscope-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug/../oscilloscope/main.cpp:45: undefined reference to `QextSerialPort::setParity(ParityType)'
C:\Users\Edgaras\Downloads\qwt-6.0.0-rc5\examples\oscilloscope-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug/../oscilloscope/main.cpp:46: undefined reference to `QextSerialPort::setDataBits(DataBitsType)'
C:\Users\Edgaras\Downloads\qwt-6.0.0-rc5\examples\oscilloscope-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug/../oscilloscope/main.cpp:47: undefined reference to `QextSerialPort::setStopBits(StopBitsType)'
collect2: ld returned 1 exit status
mingw32-make.exe[1]: *** [..\..\examples\bin\oscilloscope.exe] Error 1
mingw32-make.exe: *** [debug-all] Error 2
12:21:43: The process "C:\QtSDK\mingw\bin\mingw32-make.exe" exited with code 2.
Error while building project oscilloscope (target: Desktop)
When executing build step 'Make'

这是我的代码:

示波器.pri

include( C:\DIR\qwt-6.0.0-rc5\examples\examples.pri )
include(C:\DIR\qextserialport-1.2rc\qextserialport-1.2rc\src\qextserialport.pri)

主文件

int main(int argc, char **argv)
{
    QApplication app(argc, argv);

    MainWindow window;
    window.resize(800,400);

    SamplingThread samplingThread;
    samplingThread.setFrequency(window.frequency());
    samplingThread.setAmplitude(window.amplitude());
    samplingThread.setInterval(window.signalInterval());

    window.connect(&window, SIGNAL(frequencyChanged(double)),
        &samplingThread, SLOT(setFrequency(double)));
    window.connect(&window, SIGNAL(amplitudeChanged(double)),
        &samplingThread, SLOT(setAmplitude(double)));
    window.connect(&window, SIGNAL(signalIntervalChanged(double)),
        &samplingThread, SLOT(setInterval(double)));

    window.show();

    samplingThread.start();
    window.start();

    bool ok = app.exec(); 

   QextSerialPort* port = new QextSerialPort("COM11"); //we create the port
    port->open(QIODevice::ReadWrite); //we open the port

        if(!port->isOpen())
         {
            //QMessageBox::warning(this, "port error", "Impossible to open the port!");
         }

    //we set the port properties
    port->setBaudRate((BaudRateType)460800);          //modify the port settings on your own
    port->setQueryMode(QextSerialPort::EventDriven);
    port->setFlowControl(FLOW_OFF);
    port->setParity(PAR_NONE);
    port->setDataBits(DATA_8);
    port->setStopBits(STOP_1);
   // port->setTimeout(500);

    samplingThread.stop();
    samplingThread.wait(1000);

    return ok;

如果有人可以提供帮助,我会很感激,我不知道出了什么问题..

最好的问候埃德加拉斯

4

0 回答 0