2011-05-18 3 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 

ошибка сообщается в заголовочном файле, бее ch Я показал следующее:

#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 больше не рекомендуется. Использование:

QTM_USE_NAMESPACE 

вместо (см QtMobility QuickStart).

+1

44 Как я могу сказать: сначала добавьте заголовок QtMobility, затем QTM_USE_NAMESPACE – Ikky

+0

. Спасибо как @lkky, так и @Mat, я действительно просмотрел эту ссылку до публикации здесь, но не мог понять, что это точно означает, что мы должны включить заголовочный файл из класса QtMobility_: redface: не читал его внимательно! –

+0

@Anisha remove ', используя пространство имен QtMobility;' и попробуйте еще раз – emaillenin

Смежные вопросы