• 7761阅读
  • 6回复

关于使用QextSerialPort类进行串口编程的一个问题 [复制链接]

上一主题 下一主题
离线vrenxl
 

只看楼主 倒序阅读 楼主  发表于: 2009-04-13
最近要写一个关于串口的程序,我先写了一个测试用的小程序,这个程序是比照QextSerialPort1.1里面的一个例子qespta写的,几乎结构完全一样,可是我的就是运行有问题,我把它发出来,大家帮忙看看,谢谢了
另外哪位朋友手里有QextSerialPort1.2可否发出来共享一下,或者你愿意的话发到我的邮箱里252129361@qq.com,谢谢了

/********头文件********/
#ifndef SERIALTEST_H
#define SERIALTEST_H

#include <QDialog>
#include "ui_serialtest.h"

class QextSerialPort;

class SerialTest : public QDialog, public Ui_SerialTest
{
    Q_OBJECT
public:
    SerialTest(QWidget *parent=0);

private slots:
    void openPort();

private:
    QextSerialPort *port;
};

#endif // SERIALTEST_H

/************源文件************/
#include <QtGui>
#include "serialtest.h"
#include <QextSerialPort>

SerialTest::SerialTest(QWidget *parent):QDialog(parent)
{
    setupUi(this);
    port = new QextSerialPort("COM1");       //编译器将错误定位在了此处
    port->setBaudRate(BAUD9600);
    port->setFlowControl(FLOW_OFF);
    port->setParity(PAR_NONE);
    port->setDataBits(DATA_8);
    port->setStopBits(STOP_2);
    connect(openButton,SIGNAL(clicked()),this,SLOT(openPort()));
}

void SerialTest::openPort()
{
    if(port->open(QIODevice::ReadOnly))
        QMessageBox::warning(this,tr("report"),tr("Success!"),QMessageBox::Ok);
    else
        QMessageBox::warning(this,tr("report"),tr("Failed!"),QMessageBox::Ok);;
}

可是程序却提示有错误提示如下:serialtest.cpp:8: undefined reference to `QextSerialPort::QextSerialPort(QString const&)
离线qiang1985
只看该作者 1楼 发表于: 2009-08-14
顶,狂顶!我也是这个问题,不知道楼主解决了没有?
离线dbzhang800

只看该作者 2楼 发表于: 2009-08-14
引用楼主vrenxl于2009-04-13 15:08发表的 关于使用QextSerialPort类进行串口编程的一个问题 :
serialtest.cpp:8: undefined reference to `QextSerialPort::QextSerialPort(QString const&)
.......


你这是链接错误吧,你指定链接的库了吗?
离线qiang1985
只看该作者 3楼 发表于: 2009-08-15
引用第2楼dbzhang800于2009-08-14 20:57发表的  :
你这是链接错误吧,你指定链接的库了吗?


我也是遇到这样的问题啊:我参考了http://blog.csdn.net/dongliqiang2006/archive/2009/08/12/4440173.aspx建立的链接库。
链接库好之后发现QextSerialPort->有成员,可是就是编译不过。
release/serialtest.o:serialtest.cpp::-1: error: undefined reference to `QextSerialPort::QextSerialPort()'
release/serialtest.o:serialtest.cpp::-1: error: undefined reference to `QextSerialPort::QextSerialPort()'
:-1: error: collect2: ld returned 1 exit status
请多指教!
附件: SerialTest.rar (710 K) 下载次数:16
离线dbzhang800

只看该作者 4楼 发表于: 2009-08-15
看了一下你的代码, 发现你只是简单地把 QextSerialPort 的几个头文件放到了工程目录中,

pro 文件中既没发现你指定 QextSerialport 所需链接的库,也没发现你包含头文件所对应的 cpp 文件

这样一来,链接肯定要出错了,因为根本就没提供链接需要的东西
离线qiang1985
只看该作者 5楼 发表于: 2009-08-18
这个问题看来是个大问题啊,我现在还在困扰着,希望大家多多帮忙啊!
离线newdc

只看该作者 6楼 发表于: 2011-03-03
在.pro工程文件中添加下面一句:
LIBS += libqextserialportd
快速回复
限100 字节
 
上一个 下一个