程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Qt 5.13 中的 qtcsv 库未定义引用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Qt 5.13 中的 qtcsv 库未定义引用

开发过程中遇到Qt 5.13 中的 qtcsv 库未定义引用的问题如何解决?下面主要结合日常开发的经验,给出你关于Qt 5.13 中的 qtcsv 库未定义引用的解决方法建议,希望对你解决Qt 5.13 中的 qtcsv 库未定义引用有所启发或帮助;

我应该创建一个程序,同时从串行通信中获取数据并将它们写入 .csv 文件。第一阶段(串行通信)已完成,但我在将数据写入 .csv 文件时遇到问题。我在 git 页面中构建了 qtcsv 库。但是,现在 Qt 说:

error: undefined reference to `_imp___ZN5QtCSV10StringDataD1Ev'

首先,我不是 Cpp 和 Qt 的专家,我认为我应该在 .pro 文件或 Qt 中添加一个 liBS 分区。提前致谢。

我添加了我的代码,也许我犯了一些错误。

serialGui.pro

QT+= core gui serialport

greaterThan(QT_MAJOR_VERSION,4): QT += Widgets

CONfig += c++11

sourcES += \
    main.cpp \
    mainwindow.cpp

headerS += \
    mainwindow.h

FORMS += \
    mainwindow.ui

qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!androID: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

@H_669_13@ma​​inwindow.h

#define MAINWINDOW_H

#include <QMainWindow>

class QserialPort;

Q@R_673_11164@EGIN_nameSPACE
namespace Ui { class MainWindow; }
QT_END_nameSPACE

class MainWindow : public QMainWindow
{
    Q_OBjeCT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();


private slots:
    voID readserialData();
    voID on_pushbutton_clicked();
    voID on_pushbutton_2_clicked();

private:
    Ui::MainWindow *ui;
    QserialPort *mserialPort;
};
#endif // MAINWINDOW_H

@H_669_13@ma​​inwindow.cpp

#include "ui_mainwindow.h"
#include <QserialPort>
#include <QserialPorTinfo>
#include <QmessageBox>
#include <QDeBUG>
#include <QDir>
#include <QList>
#include "Stringdata.h"
#include "reader.h"
#include "writer.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent),ui(new Ui::MainWindow)

{
    ui->setupUi(this);
    mserialPort = new QserialPort(this);
    mserialPort->setPortname("COM6");
    mserialPort->setBaudrate(QserialPort::Baud9600);
    mserialPort->setDataBits(QserialPort::Data8);
    mserialPort->setParity(QserialPort::noparity);
    mserialPort->setStopBits(QserialPort::Onestop);
    mserialPort->setFlowControl(QserialPort::NoFlowControl);

    connect(mserialPort,SIGNAL(readyRead()),this,SLOT(readserialData()));
}

MainWindow::~MainWindow(){
    delete ui;
    delete mserialPort;
}

voID MainWindow::readserialData(){
    QByteArray data;
    data = mserialPort->readAll();
    qDeBUG()<< "Received data: "<< data;
    ui -> label -> setText(data);

    QtCSV::stringData strData;
    strData.addRow(data);
    strData.addEmptyRow();

    QString filepath = QDir::currentPath() +"\test.csv";
    QtCSV::Writer::write(filepath,strData);


}

voID MainWindow::on_pushbutton_clicked() {
    mserialPort->open(qiodevice::reaDWritE);

    foreach (QserialPorTinfo item,QserialPorTinfo::availablePorts()) {
        if (item.portname() == "COM6"){
                    mserialPort->setPort(item);
            if (!mserialPort-> open(qiodevice::reaDWritE)){
                QmessageBox::information(this,tr("connected"),"serial communication start");
                ui->label_2->setText("ConTinuing");
                ui->label_3->setText("normal");
            }
            else {
                QmessageBox::critical(this,tr("Failed"),mserialPort->errorString());
            }
        }
        else {
            qDeBUG() << "No connected device found";
        }
    }
}

voID MainWindow::on_pushbutton_2_clicked()
{
       mserialPort->close();
       QmessageBox::information(this,tr("disconnected"),"serial communication finished");
}

@H_669_13@ma​​in.cpp

#include <QApplication>

int main(int argc,char *argv[])
{
    QApplication a(argc,argv);
    MainWindow w;
    w.show();
    return a.exec();
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的Qt 5.13 中的 qtcsv 库未定义引用全部内容,希望文章能够帮你解决Qt 5.13 中的 qtcsv 库未定义引用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:中的