Qt 编程无法编译,高手来!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 编程无法编译,高手来!相关的知识,希望对你有一定的参考价值。

Assembler messages:

Fatal error: can't create debug\main.o: No such file or directory

mingw32-make[1]: *** [debug/main.o] Error 1

mingw32-make: *** [debug] Error 2

把你生成的xxx-build-desktop这个文件夹删除,重新编译试试看,如果不行的话就是你的环境变量没设好,为mingw32设一下环境变量 参考技术A Qt的工程的路径不要包含中文追问

不是这个。Qt无法识别中文我知道。那个已经解决了,是环境变量的问题。

追答

mingw32 没用过 等其他的高人吧

在用QT编程时,建了一个自己的类,但是编译时出现错误,求教大侠们如何解决

错误提示为widgetshare.cpp:12: error: no matching function for call to 'Widgetshare::connect(QTcpServer**, const char*, Widgetshare* const, const char*)',其中Widgetshare是我自己的类,类定义为//#ifndef WIDGETSHARE_H
#define WIDGETSHARE_H
#include <QtNetWork>
#include <QWidget>
#include <QTcpServer>
#include <QObject>

namespace Ui
class Widget;


class Widgetshare : public QWidget

Q_OBJECT

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

private:
Ui::Widget *ui;
QTcpServer *tcpServer;
QTcpSocket *tcpServerConnection;
qint64 totalBytes; //存放总大小信息
qint64 bytesReceived; //已收到数据的大小
qint64 fileNameSize; //文件名的大小信息
QString fileName; //存放文件名
QFile *localFile; //本地文件
QByteArray inBlock; //数据缓冲区

private slots:
void on_startButton_clicked();
void start(); //开始监听
void acceptConnection(); //建立连接
void updateServerProgress(); //更新进度条,接收数据
void displayError(QAbstractSocket::SocketError socketError);
//显示错误

;

//#endif
WIDGETSHARE_H,出错的程序文件为
#include "widgetshare.h"
#include "ui_widgetshare.h"
#include <QObject>

Widgetshare::Widgetshare(QWidget *parent):
QWidget(parent),
ui(new Ui::Widget)

totalBytes = 0;
bytesReceived = 0;
fileNameSize = 0;
QObject::connect(&tcpServer,SIGNAL(newConnection()),this,SLOT(acceptConnection()));
//当发现新连接时发出newConnection()信号


时间比较紧,可以追加分

Widgetshare::connect 改 QObject::connect追问

我用的就是QObject::connect 啊,不好使

追答

widgetshare.cpp:12: error: no matching function for call to
'Widgetshare::connect(QTcpServer**, const char*, Widgetshare* const, const char*)'
你没贴这部分出来吧
connect只有QObject::connect这个用法,有什么好不好使的

追问

上面的代码是分两部分的,下半部分的 QObject::connect(&tcpServer,SIGNAL(newConnection()),this,SLOT(acceptConnection()));
//当发现新连接时发出newConnection()信号
就是出错的代码,我用的是的QObject::connect,可是还是报那个错

追答

QObject::connect(tcpServer,SIGNAL(newConnection()),this,SLOT(acceptConnection()));
tcpServer已是指针,不用加&

参考技术A QObject::connect(&tcpServer,SIGNAL(newConnection()),this,SLOT(acceptConnection()));
你确定 这个函数是静态函数吗?追问

刚学,不太懂静态函数什么的,能说一下怎么解决吗?

追答

楼上说的真确,函数参数不匹配,你将&取掉就好了

以上是关于Qt 编程无法编译,高手来!的主要内容,如果未能解决你的问题,请参考以下文章

linux下 用qt creator 编译程序 提示错误,请高手指导

在Linux安装QT的问题:高手请教

请教各位高手在Qt中的网络编程中,怎么接收结构体

编译Qt应用程序的时候出现如下错误,哪位高手给解答一下? 编译器是arm-linux-gcc 4.5.1,qt版本是4.7.0

使用Keil开发ARM编程问题,请编程高手指点一下:为啥用了一条#if(1)的预编译指令?1就表示条件为真

qt编程中,加入#include <termios.h>头文件,报错没有这个目录,哪位高手知道!望请教...