QT中编译时出现的undefined reference to 的问题

我在用QT creator想写一个串口通信程序时,跟很多人一样也是
D:\documents\HelloSerialPort\mainwindow.cpp:20: error: undefined reference to SPComm::isOpen() const
D:\documents\HelloSerialPort\debug\mainwindow.o:-1: In function `ZN10MainWindow23on_pushButton_2_clickedEv':
D:\documents\HelloSerialPort\mainwindow.cpp:30: error: undefined reference to `SPComm::isOpen() const'
看网上说是在pro文件中添加类所在的目录,可是我怎么知道它是哪个目录呢?完全不懂啊,求教!下面是我的文件

//mainwindow.h

 #ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "SPComm.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

private:
    Ui::MainWindow *ui;
    SPComm *m_spcomm;
};

#endif // MAINWINDOW_H

spcomm.h

 #ifndef SPCOMM_H
#define SPCOMM_H

#include <QObject>
#include <QtSerialPort/QtSerialPort>

class SPComm : public QObject
{
    Q_OBJECT
public:
    explicit SPComm(QObject *parent = 0);

    ~SPComm();
    bool isOpen() const;

        void setPortName(const QString &name);
        QString portName() const;

        void setBaudRate(int baudRate);
        int baudRate() const;

        virtual bool open();
        virtual void close();
        virtual bool clear();

        int readData(char *buffer, int count, int timeout = 1000);
        int writeData(char *data, int size);
        int write(char ch);

    protected:
        QString m_portName;
        int m_baudRate;
        QSerialPort *m_serialPort;
signals:

public slots:
};

#endif // SPCOMM_H

5个回答

增加下面段语句
bool SPComm::isOpen() const
{
if(m_serialPort->isOpen())
return true;
else
return false;
}

// main.cpp

 #include "mainwindow.h"
#include "spcomm.h"
#include <QApplication>

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

    return a.exec();
}

//mainwindow.cpp

 #include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    m_spcomm = new SPComm();
}

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

void MainWindow::on_pushButton_clicked()
{
    if(m_spcomm->isOpen())
           return;
       m_spcomm->setBaudRate(9600);
       m_spcomm->setPortName("com1");
       if(m_spcomm->open())
           qDebug() << "打开串口成功";
}

void MainWindow::on_pushButton_2_clicked()
{
    if(m_spcomm->isOpen())
            m_spcomm->close();
            qDebug() << "关闭串口成功";
}

//spcomm.cpp

 #include "spcomm.h"

/*SPComm::SPComm(QObject *parent) : QObject(parent)
{

}
*/
static QSerialPort::BaudRate getBaudRate(int baudRate)
{
    switch (baudRate)
    {
    case 1200:
        return QSerialPort::Baud1200;
    case 2400:
        return QSerialPort::Baud2400;
    case 4800:
        return QSerialPort::Baud4800;
    case 9600:
        return QSerialPort::Baud9600;
    case 19200:
        return QSerialPort::Baud19200;
    case 38400:
        return QSerialPort::Baud38400;
    case 57600:
        return QSerialPort::Baud57600;
    case 115200:
        return QSerialPort::Baud115200;
    default:
        return QSerialPort::UnknownBaud;
    }
}

//这个函数用来设置串口的名字
//window 下用"com1"   linux下用"/dev/ttyS0"
void SPComm::setPortName(const QString &name)
{
    m_portName = name;
}

//用来获取串口的名字
QString SPComm::portName() const
{
    return m_portName;
}

//设置波特率 9600  19200  38400
void SPComm::setBaudRate(int baudRate)
{
    m_baudRate = baudRate;
}
//用来打开串口,调用前,先设置串口名字和波特率
bool SPComm::open()
{
    if (m_serialPort->isOpen())
    {
        return true;
    }

    m_serialPort->setPortName(m_portName);
    m_serialPort->setBaudRate(getBaudRate(m_baudRate));
    m_serialPort->setParity(QSerialPort::NoParity);
    m_serialPort->setDataBits(QSerialPort::Data8);
    m_serialPort->setStopBits(QSerialPort::OneStop);
    m_serialPort->setFlowControl(QSerialPort::NoFlowControl);
    m_serialPort->setReadBufferSize(1024);
    return m_serialPort->open(QSerialPort::ReadWrite);
}
//用来关闭串口
void SPComm::close()
{
    if (m_serialPort->isOpen())
    {
        m_serialPort->close();
    }
}
//重启串口,清楚数据
bool SPComm::clear()
{
    if (m_serialPort->isOpen())
    {
        m_serialPort->clear();
        this->close();
        return this->open();
    }
    return false;
}
//用来接收串口发来的数据
int SPComm::readData(char *buffer, int count, int timeout)
{
    int len = 0;
    forever
    {
        int n = m_serialPort->read(&buffer[len], count - len);
        if (n == -1)
        {
            return -1;
        }
        else if (n == 0 && !m_serialPort->waitForReadyRead(timeout))
        {
            return -2;
        }
        else
        {
            len += n;
            if (count == len)
                break;
        }
    }

    return len;
}
//发送数据到串口  比如发送协议
int SPComm::writeData(char *data, int size)
{
    int len = 0;
    forever
    {
        int n = m_serialPort->write(&data[len], size - len);
        if (n == -1)
        {
            return -1;
        }
        else
        {
            len += n;
            if (size == len)
                break;
        }
    }

    return len;
}
//别忘记了
//构造函数 添加初始化数据
SPComm::SPComm(QObject *parent) : QObject(parent)
{
    m_serialPort = new QSerialPort();
    m_baudRate = 9600;
    m_portName = "";
}
//析构的时候  删除 数据
SPComm::~SPComm()
{
    delete m_serialPort;
}

不知道是要在pro文件中添加什么呢?

可能是你只是在.h文件中声明了bool isOpen() const;而没有在.cpp文件中定义它。

在Pro中加上QT += serialport

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
OpenGL代码编译时出现undefined reference to `XineramaQueryExtension'是什么原因?如何解决?

我的c++程序使用了glfw和glad,编译环境中这两个都有,但编译时报如下错,如何解决? **报错信息:** ``` //tmp/cco8XNYv.o: In function `main': test2.cpp:(.text+0xdd): undefined reference to `gladLoadGLLoader' /tmp/cco8XNYv.o: In function `framebuffer_size_callback(GLFWwindow*, int, int)': test2.cpp:(.text+0x192): undefined reference to `glad_glViewport' /usr/local/lib/libglfw3.a(x11_init.c.o): In function `initExtensions': x11_init.c:(.text+0x1b05): undefined reference to `XineramaQueryExtension' x11_init.c:(.text+0x1b1d): undefined reference to `XineramaIsActive' /usr/local/lib/libglfw3.a(x11_init.c.o): In function `_glfwCreateCursorX11': x11_init.c:(.text+0x23ea): undefined reference to `XcursorImageCreate' x11_init.c:(.text+0x2507): undefined reference to `XcursorImageLoadCursor' x11_init.c:(.text+0x2515): undefined reference to `XcursorImageDestroy' /usr/local/lib/libglfw3.a(x11_monitor.c.o): In function `_glfwPlatformGetMonitors': x11_monitor.c:(.text+0x682): undefined reference to `XineramaQueryScreens' collect2: ld returned 1 exit status ``` **编译命令:** ``` g++ test.cpp -o test -lglfw3 -lGL -lX11 -lpthread -lXrandr -lXi ``` **代码:** ``` #include<glad/glad.h> #include<GLFW/glfw3.h> #include<iostream> using namespace std; void framebuffer_size_callback(GLFWwindow* window, int width, int height); int main() { glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); GLFWwindow* window = glfwCreateWindow(800, 600, "fly's window", NULL, NULL); if(window == NULL) { cout << "Failed to create GLFW window" << endl; glfwTerminate(); return -1; } glfwMakeContextCurrent(window); glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); if(!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { cout << "Failed to initialize GLAD" << endl; return -1; } while(!glfwWindowShouldClose(window)) { glfwSwapBuffers(window); glfwPollEvents(); } glfwTerminate(); return 0; } void framebuffer_size_callback(GLFWwindow* window, int width, int height) { glViewport(0, 0, width, height); } ``` 附: 操作系统是CentOS 6.10 glfw版本:3.2 glad版本:0.1.33 g++版本:4.4.7

C++ 编译错误: Error:undefined reference to ` '

我编写了一个从list母类继承的链表linkList子类并把声明写在linkList.h文件中,实现写在linkList.cpp中, 但是我发现只用#include "linkList.h"的话会报错如下![图片说明](https://img-ask.csdn.net/upload/201805/08/1525751289_288763.png) 但是如果加上#include "linkList.cpp" 则不会报错。 希望大神告知错误所在,以及教我一下如何正确的书写头文件和源文件! 以下是代码: linkList.h: #ifndef LINKLIST_H_INCLUDED #define LINKLIST_H_INCLUDED class OutOfBound {}; class IllegalSize {}; template <class T> class list { public: virtual int length() const = 0; virtual void clear() = 0; virtual void insert(int i,const T& x) = 0; virtual void remove(int i) = 0; virtual T visit(int i) const = 0; virtual int search(const T& x) const = 0; virtual void traverse() const = 0; virtual ~list() {}; }; template <class T> class linkList:public list<T> { private: struct node { T data; node *prev, *next; node(const T &x, node* p = NULL, node* n = NULL) { data = x; prev = p; next = n; } node():next(NULL), prev(NULL) {} ~node() {} }; node *head, *tail; int currentLength; node* move(int i) const; public: linkList(); ~linkList() { clear(); delete head; delete tail; } int length() const { return currentLength; } void clear(); void insert(int i,const T& x); void remove(int i); T visit(int i) const; int search(const T& x) const; void traverse() const; }; #endif // LINKLIST_H_INCLUDED linkList.cpp: //file: #include <iostream> #include <cstdio> #include "linkList.h" using namespace std; template <class T> typename linkList<T>::node* linkList<T>::move(int i) const { node* p = head -> next; if(i < 0 || i > currentLength) throw OutOfBound(); while(i > 0) { p = p -> next; i--; } return p; } template <class T> linkList<T>::linkList() { head = new node; tail = new node; head -> next = tail; tail -> prev = head; currentLength = 0; } template <class T> void linkList<T>::clear() { node *p, *q; p = head -> next; while(p != tail) { q = p -> next; delete p; p = q; } head -> next = tail; tail -> prev = head; currentLength = 0; } template <class T> void linkList<T>::insert(int i, const T& x) { node *pos = move(i); node *tmp = new node(x, pos -> prev, pos); pos -> prev -> next = tmp; pos -> prev = tmp; ++currentLength; } template <class T> void linkList<T>::remove(int i) { node *pos = move(i); pos -> prev -> next = pos -> next; pos -> next -> prev = pos -> prev; delete pos; --currentLength; } template <class T> int linkList<T>::search(const T& x) const { int i = 0; node* p = head -> next; while(p != tail && p -> data != x) { p = p -> next; i++; } if( p == tail) return -1; else return i; } template <class T> T linkList<T>::visit(int i) const { node* p = move(i); return p -> data; } template <class T> void linkList<T>::traverse() const { node *p = head -> next; while(p != tail) { cout << p -> data << " "; p = p -> next; } cout << endl; } main.cpp: #include <iostream> #include "linkList.h" using namespace std; int main() { linkList<int> l1; int i; char ch; for(i = 0; i < 100; i++) { l1.insert(i, i); } l1.traverse(); ch = cin.get(); for(i = 50; i > 0; i--) { l1.remove(i); } l1.traverse(); ch = cin.get(); cout << l1.length() << endl; ch = cin.get(); for(i = 0; i < l1.length() ; ++i) { cout << l1.visit(i) << endl; } l1.traverse(); ch = cin.get(); for(i = 60; i < 80 ; ++i) { cout << l1.search(i) << endl; } l1.traverse(); ch = cin.get(); return 0; }

QT5配置GSL,最后运行程序时一直说error: undefined reference to `gsl_sf_bessel_J0'

![图片说明](https://img-ask.csdn.net/upload/202004/09/1586419587_610700.png)![图片说明](https://img-ask.csdn.net/upload/202004/09/1586419597_129789.png)![图片说明](https://img-ask.csdn.net/upload/202004/09/1586419940_217628.png)![图片说明](https://img-ask.csdn.net/upload/202004/09/1586419951_119260.png)![图片说明](https://img-ask.csdn.net/upload/202004/09/1586419959_125821.png)![图片说明](https://img-ask.csdn.net/upload/202004/09/1586419970_498501.png)![图片说明](https://img-ask.csdn.net/upload/202004/09/1586419977_697860.png)![图片说明](https://img-ask.csdn.net/upload/202004/09/1586419990_296811.png) 我是按照教程一步步走下来的,对gsl的编译也貌似没有问题,就是最后这里程序执行不了,写gsl_sf_bessel_J0 的时候也是会有提示的,在线求大佬帮忙

undefined reference to....这个怎么解决呢?谢了.如下图

![图片说明](https://img-ask.csdn.net/upload/201607/20/1468994286_642791.png)

线程emit send(int)提示 error: undefined reference to `MyThread::send(int)'

若定义void MyThread::send(int) { } 编译时提示No such signal QThread::send(int) QThread类头文件 ``` #ifndef MYTHREAD_H #define MYTHREAD_H #include <QThread> class MyThread : public QThread { signals: void send(int); public: MyThread(); protected: void run(); }; #endif // MYTHREAD_H ``` QThread .cpp文件 ``` #include "mythread.h" MyThread::MyThread() { } void MyThread::run() { int i = 9; emit send(i); } void MyThread::send(int) { } ``` 连接线程信号和主线程的槽函数 ``` #include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); m_thread = new MyThread; connect(m_thread,SIGNAL(send(int)),this,SLOT(UpdateSlot())); } ```

cpp已经定义了函数,头文件也写好了,为什么在vscode里总提示undefined reference?

本来想做个英雄连的mod启动器,可以分别启动不同的mod,但是总是提示undefined reference,后面发现用最简单的hello world也报错。但是我在qtcreator里面能够正常编译。求前辈解答 代码截图如下: ![图片说明](https://img-ask.csdn.net/upload/202003/18/1584517339_617522.png) ![图片说明](https://img-ask.csdn.net/upload/202003/18/1584517363_984462.png)![图片说明](https://img-ask.csdn.net/upload/202003/18/1584517376_26430.png) 另:我在qtcreator里面修改头文件时,HELLO\_H可以用,但是\_HELLO\_H\_会提示是保留标识符,我看网上的帖子都是\_HELLO\_H\(前后都有下划线),希望能有前辈解答。

QT opencv C++ Android编译问题

最近想把windows下写好的opencv代码移植到Android平台上运行,于是搭建了一个QT for Android的编译环境,然后把代码放到QT里面编译。 刚开始用-Desktop_Qt_5_4_1_MinGW_32bit编译运行正常,可是把编译器换成Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1之后就就报错,在网上查了好几天都没有找到解决方案。 有没有哪位大神知道的,帮帮忙,在下不胜感激!! 以下是关键的代码部分: .pro文件: INCLUDEPATH += E:\opencv\build\include\opencv2\ E:\opencv\build\include\opencv\ E:\opencv\build\include LIBS += E:\opencv_cmake\lib\libopencv_core249.dll.a\ E:\opencv_cmake\lib\libopencv_highgui249.dll.a\ E:\opencv_cmake\lib\libopencv_imgproc249.dll.a\ E:\opencv_cmake\lib\libopencv_calib3d249.dll.a\ E:\opencv_cmake\lib\libopencv_contrib249.dll.a\ E:\opencv_cmake\lib\libopencv_features2d249.dll.a\ E:\opencv_cmake\lib\libopencv_flann249.dll.a\ E:\opencv_cmake\lib\libopencv_gpu249.dll.a\ E:\opencv_cmake\lib\libopencv_legacy249.dll.a\ E:\opencv_cmake\lib\libopencv_ml249.dll.a\ E:\opencv_cmake\lib\libopencv_objdetect249.dll.a\ E:\opencv_cmake\lib\libopencv_video249.dll.a 包含的opencv头文件: #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> opencv代码部分 image = cv::imread("./1.jpg"); if(!image.data) { QMessageBox msgBox; msgBox.setText(tr("image data is null")); msgBox.exec(); } else { cv::cvtColor(image,image,CV_BGR2RGB); img = QImage((const unsigned char*)(image.data),image.cols,image.rows, image.cols*image.channels(), QImage::Format_RGB888); ui->label->clear(); ui->label->setPixmap(QPixmap::fromImage(img)); //ui->processPushButton->setEnabled(true); ui->label->resize(ui->label->pixmap()->size()); } 报错情况: ![图片说明](https://img-ask.csdn.net/upload/201607/28/1469671885_529743.png) E:\opencv\build\include\opencv2\core\mat.hpp:278: error: undefined reference to `cv::fastFree(void*)' E:\opencv\build\include\opencv2\core\mat.hpp:298: error: undefined reference to `cv::Mat::copySize(cv::Mat const&)' E:\opencv\build\include\opencv2\core\mat.hpp:367: error: undefined reference to `cv::Mat::deallocate()' E:\QT_Work\build-testAndroid-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug\mainwindow.obj:-1: In function `cv::Mat::operator=(cv::Mat const&)': E:\QT_Work\build-testAndroid-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug\mainwindow.obj:-1: In function `cv::Mat::release()': E:\QT_Work\testAndroid\mainwindow.cpp:28: error: undefined reference to `cv::imread(std::string const&, int)'

/usr/lib/libnssutil3.so: undefined reference to `PL_ClearArenaPool'

我在一个64位的linux系统下编译32位的程序,因此很多库文件都是自己安装的。我在编译代码的时候遇到了/usr/lib/libnssutil3.so: undefined reference to `PL_ClearArenaPool'这个报错。用nm查了这个库文件里没有定义这个符号。但是不知道这个问题应该怎么解决。求大神相助

QT使用VISA库编译出错问题?

在用QT使用VISA库的时候编译出现 error: undefined reference to `viOpenDefaultRM' 的一系列错误 ![图片说明](https://img-ask.csdn.net/upload/201909/02/1567413535_292336.png) /------------------------------------------------------------------/ ![图片说明](https://img-ask.csdn.net/upload/201909/02/1567413546_151062.png) 电脑上已经成功下载了visa库 pro文件也加上了 INCLUDEPATH += "C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Include" LIBS += "C:\Program Files (x86)\IVI Foundation\VISA\WinNT\lib\msc\visa32.lib" 头文件 #include <visa.h>也加上了 求大佬帮我解问题

在Qt 中调用GDAL出错,请问是编译库的额问题吗

在Qt5.13.2中新建控制台工程,编译器5.13.2 MinGW 64-bit 调用GDAL时,将GDAL库放在项目文件夹下,在pro中写入 ``` LIBS += -L$$PWD/GDAL/lib/gdali.lib INCLUDEPATH += $$PWD/GDAL/include DEPENDPATH += $$PWD/GDAL/include ``` 编译无问题 在main.cpp如下 ``` #include <QCoreApplication> #include "gdal_priv.h" int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); GDALAllRegister(); return a.exec(); } ``` 编译报错 undefined reference to 'GDALAllregister' error:ld returned 1 exit status 请问是库的编译有问题么,库是VS2017编译的,如果要用MINGW编译要咋做

Qt5Qftp编译报错,外部链接问题

我明明用的是源码,就是QFtp的源码编译,还是会出现 1>filetrans.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall QFtp::QFtp(class QObject *)" (??0QFtp@@QAE@PAVQObject@@@Z),该符号在函数 "public: __thiscall FileTrans::FileTrans(void)" (??0FileTrans@@QAE@XZ) 中被引用 1>filetrans.obj : error LNK2019: 无法解析的外部符号 "public: virtual __thiscall QFtp::~QFtp(void)" (??1QFtp@@UAE@XZ),该符号在函数 "public: virtual __thiscall FileTrans::~FileTrans(void)" (??1FileTrans@@UAE@XZ) 中被引用 1>filetrans.obj : error LNK2019: 无法解析的外部符号 "public: int __thiscall QFtp::get(class QString const &,class QIODevice *,enum QFtp::TransferType)" (?get@QFtp@@QAEHABVQString@@PAVQIODevice@@W4TransferType@1@@Z),该符号在函数 "public: void __thiscall FileTrans::DownlodFile(class QString const &,class QString const &)" (?DownlodFile@FileTrans@@QAEXABVQString@@0@Z) 中被引用 1>filetrans.obj : error LNK2019: 无法解析的外部符号 "public: int __thiscall QFtp::put(class QIODevice *,class QString const &,enum QFtp::TransferType)" (?put@QFtp@@QAEHPAVQIODevice@@ABVQString@@W4TransferType@1@@Z),该符号在函数 "public: void __thiscall FileTrans::UploadFile(class QString const &,class QString const &)" (?UploadFile@FileTrans@@QAEXABVQString@@0@Z) 中被引用 1>moc_filetrans.obj : error LNK2001: 无法解析的外部符号 "public: static struct QMetaObject const QFtp::staticMetaObject" (?staticMetaObject@QFtp@@2UQMetaObject@@B) 1>moc_filetrans.obj : error LNK2019: 无法解析的外部符号 "public: virtual void * __thiscall QFtp::qt_metacast(char const *)" (?qt_metacast@QFtp@@UAEPAXPBD@Z),该符号在函数 "public: virtual void * __thiscall FileTrans::qt_metacast(char const *)" (?qt_metacast@FileTrans@@UAEPAXPBD@Z) 中被引用 1>moc_filetrans.obj : error LNK2019: 无法解析的外部符号 "public: virtual int __thiscall QFtp::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@QFtp@@UAEHW4Call@QMetaObject@@HPAPAX@Z),该符号在函数 "public: virtual int __thiscall FileTrans::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@FileTrans@@UAEHW4Call@QMetaObject@@HPAPAX@Z) 中被引用 1>winscp.obj : error LNK2019: 无法解析的外部符号 "public: int __thiscall QFtp::connectToHost(class QString const &,unsigned short)" (?connectToHost@QFtp@@QAEHABVQString@@G@Z),该符号在函数 __catch$?slot_btn_Get_clicked@WinScp@@AAEXXZ$0 中被引用 1>winscp.obj : error LNK2019: 无法解析的外部符号 "public: int __thiscall QFtp::login(class QString const &,class QString const &)" (?login@QFtp@@QAEHABVQString@@0@Z),该符号在函数 __catch$?slot_btn_Get_clicked@WinScp@@AAEXXZ$0 中被引用 1>winscp.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall QFtp::abort(void)" (?abort@QFtp@@QAEXXZ),该符号在函数 __catch$?slot_btn_Get_clicked@WinScp@@AAEXXZ$0 中被引用 1>D:\workspace\test\WinScp\Win32\Debug\\WinScp.exe : fatal error LNK1120: 10 个无法解析的外部命令 报错,运行环境是vs2012+Qt5.2,求大神解答。。

RedHat企业版6.2中编译安装Qt4.8.5后,进入/tools/qvfb中gmake出现以下错误

有懂的人给看看是怎么回事,急求高手解答。错误如下:.obj/release-shared/qanimationwriter.o: In function `QAnimationWriter::QAnimationWriter(QString const&, char const*)': qanimationwriter.cpp:(.text+0x9ec): undefined reference to `png_create_write_struct' qanimationwriter.cpp:(.text+0x9f7): undefined reference to `png_create_info_struct' qanimationwriter.cpp:(.text+0xa0d): undefined reference to `png_set_compression_level' qanimationwriter.cpp:(.text+0xa2c): undefined reference to `png_set_write_fn' .obj/release-shared/qanimationwriter.o: In function `QAnimationWriterMNG::setImage(QImage const&)': qanimationwriter.cpp:(.text._ZN19QAnimationWriterMNG8setImageERK6QImage[QAnimationWriterMNG::setImage(QImage const&)]+0xb6): undefined reference to `png_write_chunk' .obj/release-shared/qanimationwriter.o: In function `QAnimationWriterMNG::write(png_struct_def*, unsigned char*, unsigned int)': qanimationwriter.cpp:(.text._ZN19QAnimationWriterMNG5writeEP14png_struct_defPhj[QAnimationWriterMNG::write(png_struct_def*, unsigned char*, unsigned int)]+0xd): undefined reference to `png_get_io_ptr' 注:在qanimationwriter.cpp中已包含<png.h>且libpng库也已安装。

VS下编译Qt Demo的问题求助

在编译Qt的demo程序时,有时会遇到一个错误提示,无法找到demo_shared.lib。![图片说明](https://img-ask.csdn.net/upload/201702/18/1487387389_132513.png)

在Qt中编译带Qwt的ARM程序时总是提示 cannot find -lqwt

我编译Qt的ARM程序就不会报错,而且编译的程序能够顺利在ARM板子上运行,但是只要一加上Qwt就会报错,总是说找不到libqwt.so文件,但是我已经指定了路径了,而且设置了环境变量,它还是提示说找不到。这是怎么回事呢。连在Ubuntu上编译都编译不过,更别说在板子上运行了。下面是我Qt中配置的工具链![报错信息](https://img-ask.csdn.net/upload/201711/11/1510370611_736004.jpg) ![飞思卡尔的板](https://img-ask.csdn.net/upload/201711/11/1510370639_666595.jpg) ![使用Kits-mx6编译](https://img-ask.csdn.net/upload/201711/11/1510370647_398030.jpg) 以上配置如果没有用到qwt是没问题的,能够在板上运行,只要一用到qwt就提示找不到库文件。这问题折腾了我几天了。要醉了

protobuf 编译错误 `well_known_types_js'

src/google/protobuf/compiler/js/js_generator.cc:3486: undefined reference to `well_known_types_js'

编译qvfb的时候出错,求问如何解决!!!!!!

![图片说明](https://img-ask.csdn.net/upload/201504/13/1428855418_727434.png) undefined reference to symbol 'png_sig_bytes@@PNG12_0' 求解决办法,不知道问题出在哪里

QtCreator中OpenGL配置GLFW库

我用QtCreator配置openGL的环境,GLAD库已经配置好了,编译也能通过。但是GLFW的库我折腾了半天都不行,qt的include文件夹我包含了GLFW的头文件,引用的时候输入#include<GLFW/glfw3.h>编译也能过,但是当我在main函数里调用glfwInit()函数的时候,就一直提示undefined reference to 'glfwinit'。 有大佬告知一下这什么情况吗,重复一下,我用的开发环境是QtCreator,不是vs,不是vs,不是vs。![图片说明](https://img-ask.csdn.net/upload/201908/30/1567151975_155057.png)

我自己写了写了一个qwt的程序,想用交叉编译把程序移植到开发板上

谢谢帮忙!! 2、qwt的例子在交叉编译之后可以到开发板上运行。 1、问题:我在用ARM版的qmake之后再make出错,错误如下: /opt/FriendlyARM/toolschain/4.4.3/lib/gcc/arm-none-linux-gnueabi/4.4.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: libQt5PrintSupport.so.5, needed by /usr/local/qwt-6.1.3/lib//libqwt.so, not found (try using -rpath or -rpath-link) /opt/FriendlyARM/toolschain/4.4.3/lib/gcc/arm-none-linux-gnueabi/4.4.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: libQt5Svg.so.5, needed by /usr/local/qwt-6.1.3/lib//libqwt.so, not found (try using -rpath or -rpath-link) /opt/FriendlyARM/toolschain/4.4.3/lib/gcc/arm-none-linux-gnueabi/4.4.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: libQt5Concurrent.so.5, needed by /usr/local/qwt-6.1.3/lib//libqwt.so, not found (try using -rpath or -rpath-link) /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgGenerator::setTitle(QString const&)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgRenderer::isValid() const@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgGenerator::QSvgGenerator()@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgGenerator::~QSvgGenerator()@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QPrinter::~QPrinter()@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgGenerator::viewBoxF() const@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QPrinter::setFullPage(bool)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QPrinter::setOutputFormat(QPrinter::OutputFormat)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QPrinter::setDocName(QString const&)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgRenderer::load(QByteArray const&)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QPrinter::setColorMode(QPrinter::ColorMode)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgRenderer::viewBoxF() const@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QPrinter::setPaperSize(QSizeF const&, QPrinter::Unit)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgRenderer::QSvgRenderer(QObject*)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QPrinter::setOutputFileName(QString const&)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgGenerator::setFileName(QString const&)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgRenderer::setViewBox(QRectF const&)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgRenderer::render(QPainter*, QRectF const&)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgGenerator::setResolution(int)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QPrinter::setResolution(int)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgRenderer::~QSvgRenderer()@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgRenderer::load(QString const&)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgGenerator::setViewBox(QRectF const&)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QPrinter::QPrinter(QPrinter::PrinterMode)@Qt_5' /usr/local/qwt-6.1.3/lib//libqwt.so: undefined reference to `QSvgRenderer::defaultSize() const@Qt_5' collect2: ld returned 1 exit status Makefile:170: recipe for target 'bishe_qwt1' failed make: *** [bishe_qwt1] Error 1

VS2017+Qt5.9.4,moc文件Link出错

最近使用VS2017+Qt5.9.4运行一个老版本Qt4.8.5的程序,带Ui。出现大量无法解析的外部符号错误,例如:无法解析的外部符号 "protected: virtual bool __cdecl QLabel::focusNextPrevChild(bool)" (?focusNextPrevChild@QLabel@@MEAA_N_N@Z) 已经尝试的解决方法,重新生成QT5.9.4的moc文件替换掉原来老的moc文件,加载进VS工程,重新生成解决方案,仍旧出现无法解析的命令,关于UI界面的所有类如QLabel,QWidgets,QRadioButton等均报错,无法解析的外部符号。 各种path路径均没有错误。使用Debug X64编译。 求助,怎么解决。

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

一文带你入门Java Stream流,太强了

两个星期以前,就有读者强烈要求我写一篇 Java Stream 流的文章,我说市面上不是已经有很多了吗,结果你猜他怎么说:“就想看你写的啊!”你看你看,多么苍白的喜欢啊。那就“勉为其难”写一篇吧,嘻嘻。 单从“Stream”这个单词上来看,它似乎和 java.io 包下的 InputStream 和 OutputStream 有些关系。实际上呢,没毛关系。Java 8 新增的 Stream 是为...

立即提问
相关内容推荐