• 4535阅读
  • 3回复

帮忙看看,为什么编译不通过 [复制链接]

上一主题 下一主题
离线dongle2001
 

只看楼主 倒序阅读 楼主  发表于: 2007-10-05
帮忙看看,为什么编译不通过
— 本帖被 XChinux 执行加亮操作(2007-10-05) —
mydialog.cpp


#include "mydialog.h"  //类声明的头文件,需要自己动手写

MyDialog::MyDialog(QWidget *parent)
        : QWidget(parent)
{
        setupUi(this);  //这个非常重要,在构造函数中用这个函数来实现界面,
                      //没有这个函数的话界面就不会被显示出来
        http = new QHttp(this);
        connect(http, SIGNAL(requestFinished(int, bool)),
            this, SLOT(httpRequestFinished(int, bool)));
        getWeather();
}

void MyDialog::getWeather() {
   
    QUrl url(QString::fromUtf8("http://www.blogweather.net/MiniWeather.aspx?Area=China&Name=Shenyang&Language=Chinese&Color=Blue"));
    fileName = QString::fromUtf8("temp.html");
    if (QFile::exists(fileName)) {
        return;   
      }

    file = new QFile(fileName);
    if (!file->open(QIODevice::WriteOnly)) {
        QMessageBox::information(this, tr("HTTP"),
                                tr("Unable to save the file %1: %2.")
                                .arg(fileName).arg(file->errorString()));
        delete file;
        file = 0;
        return;
    }

    QHttp::ConnectionMode mode = url.scheme().toLower() == "https" ? QHttp::ConnectionModeHttps : QHttp::ConnectionModeHttp;
    http->setHost(url.host(), mode, url.port() == -1 ? 0 : url.port());
   
    if (!url.userName().isEmpty())
        http->setUser(url.userName(), url.password());
   
    httpGetId = http->get(url.path(), file);
}

QString MyDialog::getTime() {
    return "";
}

void MyDialog::httpRequestFinished(int requestId, bool error)
{
    if (requestId != httpGetId)
        return;
    file->close();

    if (error) {
        file->remove();
    } else {
        textBrowser->setSource(fileName);
      }
    delete file;
    file = 0;
}

mydialog.h

#ifndef MYDIALOG_H
#define MYDIALOG_H

#include <QtGui>
#include <QtNetwork/QHttp>

#include "clock.h" //需要从这个文件里的Ui::GoToDialog


class MyDialog : public QWidget, public Ui::Form //多重继承
{
        Q_OBJECT
public:
        MyDialog(QWidget *parent = 0);
private:
    QHttp *http;
    QFile *file;
    QString fileName;
    int httpGetId;
    void getWeather();
    QString getTime();
private slots:
    void httpRequestFinished(int requestId, bool error);
};
#endif
离线dongle2001

只看该作者 1楼 发表于: 2007-10-05
编译 (make)...
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.3.1/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.3.1/include/QtCore -I/usr/local/Trolltech/Qt-4.3.1/include/QtCore -I/usr/local/Trolltech/Qt-4.3.1/include/QtGui -I/usr/local/Trolltech/Qt-4.3.1/include/QtGui -I/usr/local/Trolltech/Qt-4.3.1/include -I. -I. -I. -o main.o main.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.3.1/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.3.1/include/QtCore -I/usr/local/Trolltech/Qt-4.3.1/include/QtCore -I/usr/local/Trolltech/Qt-4.3.1/include/QtGui -I/usr/local/Trolltech/Qt-4.3.1/include/QtGui -I/usr/local/Trolltech/Qt-4.3.1/include -I. -I. -I. -o mydialog.o mydialog.cpp
/usr/local/Trolltech/Qt-4.3.1/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.3.1/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.3.1/include/QtCore -I/usr/local/Trolltech/Qt-4.3.1/include/QtCore -I/usr/local/Trolltech/Qt-4.3.1/include/QtGui -I/usr/local/Trolltech/Qt-4.3.1/include/QtGui -I/usr/local/Trolltech/Qt-4.3.1/include -I. -I. -I. mydialog.h -o moc_mydialog.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.3.1/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.3.1/include/QtCore -I/usr/local/Trolltech/Qt-4.3.1/include/QtCore -I/usr/local/Trolltech/Qt-4.3.1/include/QtGui -I/usr/local/Trolltech/Qt-4.3.1/include/QtGui -I/usr/local/Trolltech/Qt-4.3.1/include -I. -I. -I. -o moc_mydialog.o moc_mydialog.cpp
g++ -Wl,-rpath,/usr/local/Trolltech/Qt-4.3.1/lib -o test analogclock.o main.o mydialog.o moc_analogclock.o moc_mydialog.o    -L/usr/local/Trolltech/Qt-4.3.1/lib -lQtGui -L/usr/local/Trolltech/Qt-4.3.1/lib -L/usr/X11R6/lib -lpng -lSM -lICE -pthread -pthread -lXi -lXrender -lXrandr -lXfixes -lXcursor -lXinerama -lfreetype -lfontconfig -lXext -lX11 -lQtCore -lz -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread
mydialog.o
:

In

function

`
MyDialog::getWeather()
'
:
mydialog.cpp
:
(
.
text
+
0x419
)
:

undefined

reference

to

`
QHttp::setHost(QString const&, QHttp::ConnectionMode, unsigned short)
'
mydialog.cpp
:
(
.
text
+
0x497
)
:

undefined

reference

to

`
QHttp::setUser(QString const&, QString const&)
'
mydialog.cpp
:
(
.
text
+
0x4ea
)
:

undefined

reference to `QHttp::get(QString const&, QIODevice*)'
mydialog.o: In function `MyDialog::MyDialog(QWidget*)':
mydialog.cpp:(.text+0x885): undefined reference to `QHttp::QHttp(QObject*)'
mydialog.o: In function `MyDialog::MyDialog(QWidget*)':
mydialog.cpp:(.text+0x975): undefined reference to `QHttp::QHttp(QObject*)'
collect2: ld 返回 1
make: *** [test] 错误 1
---------------------- 编译结束 1 错误 ----------------------
离线turkeysy

只看该作者 2楼 发表于: 2007-10-05
少头文件 或者 是  lib
离线XChinux

只看该作者 3楼 发表于: 2007-10-05
在.pro里:
QT += network
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个