2011-05-18 126 views
0

我试图编译:http://wiki.forum.nokia.com/index.php/Fetching_a_map_tile_in_Qt_using_Google_Maps错误:“QtMobility的”不是一个命名空间名字

我使用QtMobility的1.2使用Qt 4.7在openSUSE 11.2

我收到的错误是:

MainWindow.h:7: error: ‘QtMobility’ is not a namespace-name 
MainWindow.h:7: error: expected namespace-name before ‘;’ token 
MainWindow.h:10: error: expected class-name before ‘{’ token 
In file included from /opt/qtsdk-2010.05/qt/include/QtCore/qcoreapplication.h:47, 
       from /opt/qtsdk-2010.05/qt/include/QtGui/qapplication.h:45, 
       from /opt/qtsdk-2010.05/qt/include/QtGui/QApplication:1, 
       from main.cpp:2: 
/opt/qtsdk-2010.05/qt/include/QtCore/qeventloop.h:51: error: expected initializer before ‘QtCoreModule’ 
make: *** [main.o] Error 1 

我.pro文件包含:

TEMPLATE = app 
TARGET = 
DEPENDPATH += . 
INCLUDEPATH += . 

HEADERS += MainWindow.h 
SOURCES += main.cpp MainWindow.cpp 

QT += network 
CONFIG += mobility 
MOBILITY = location 

报道在标题连接错误我已经显示如下:

#include <QtNetwork/QNetworkAccessManager> 
#include <QtNetwork/QNetworkReply> 
#include <QPaintEvent> 
#include <QPixmap> 

using namespace QtMobility; 

class MainWindow : public QMainWindow 
{ 
    Q_OBJECT 

public: 
    MainWindow(); 
    void paintEvent(QPaintEvent* paintEvent); 

public slots: 
    void handleNetworkData(QNetworkReply* reply); 

private: 
    void fetchMap(const QSize& size, qreal latitude, qreal longitude); 

private: 
    QNetworkAccessManager networkAccessManager; 
    QPixmap mapPixmap; 
} 

请指导。

回答

2

您需要至少包含一个QtMobility头才能使用该名称空间。

此外,using namespace声明不再是推荐的方式。使用:

​​3210

改为(参见QtMobility QuickStart)。

+1

正如Mat所说:首先添加一个QtMobility头文件,然后QTM_USE_NAMESPACE – Ikky 2011-05-18 08:35:05

+0

感谢@lkky和@Mat,我实际上已经在发布之前查找了这个链接,但无法弄清楚它的确切含义是_we必须包括类QtMobility_中的头文件:redface:没有仔细阅读它! – 2011-05-18 08:48:53

+0

@Anisha删除'using namespace QtMobility;'并再试一次 – emaillenin 2011-05-18 09:50:06