2015-05-20 11 views
1

Я неделями работала над BB и испытывала много неприятностей. Некоторые из них были разрешены, некоторые из них не без поддержки форума. Теперь у меня большая проблема, и я не могу найти ответ по поиску. Я ценю, если какое-то тело может помочь.Blackberry с использованием классов C++ в QML в безголовом приложении: неопределенная ссылка на `bb :: device :: VibrationController :: staticMetaObject '

Вот простой пример, который делает большую проблему для меня:

  1. Создать обезглавленное приложение с помощью Momentics. Два проекта будут созданы HeadlessApp и HeadlessAppService. Без изменений этот код работает хорошо.

  2. Я следую this link использовать VibrationController в HeadlessAppService Добавить ниже кодов main.cpp из HeadlessAppService

#include <bb/device/VibrationController>

using namespace bb::device;

затем добавить qmlRegisterType ниже

Q_DECL_EXPORT int main(int argc, char **argv) 
{ 

    Application app(argc, argv); 

    qmlRegisterType<VibrationController>("bb.vibrationController", 1, 0, "VibrationController"); 
    ApplicationUI appui; 
    return Application::exec(); 
} 
  1. Чтобы подтвердить этот новый код, я просто щелкаю правой кнопкой мыши по проекту и выбираю Build Project. Bang !!! У меня много ошибок, которые я не могу понять. (Красные линии ошибки)

08:44:30 **** Incremental Build of configuration Device-Debug for project headlessTest **** 
 
make -j4 Device-Debug 
 
make -C .//translations -f Makefile update 
 
make[1]: Entering directory 'D:/BB-dev/momentics-workspace/headlessTest/translations' 
 
C:/bbndk/host_10_3_1_12/win32/x86/usr/bin/lupdate headlessTest.pro 
 
Updating 'headlessTest.ts'... 
 
    Found 2 source text(s) (0 new and 2 already existing) 
 
make[1]: Leaving directory 'D:/BB-dev/momentics-workspace/headlessTest/translations' 
 
make -C .//translations -f Makefile release 
 
make[1]: Entering directory 'D:/BB-dev/momentics-workspace/headlessTest/translations' 
 
C:/bbndk/host_10_3_1_12/win32/x86/usr/bin/lrelease headlessTest.pro 
 
Updating 'D:/BB-dev/momentics-workspace/headlessTest/translations/headlessTest.qm'... 
 
    Generated 0 translation(s) (0 finished and 0 unfinished) 
 
    Ignored 2 untranslated source text(s) 
 
make[1]: Leaving directory 'D:/BB-dev/momentics-workspace/headlessTest/translations' 
 
make -C ./arm -f Makefile debug 
 
make[1]: Entering directory 'D:/BB-dev/momentics-workspace/headlessTest/arm' 
 
make -f Makefile.Debug 
 
make[2]: Entering directory 'D:/BB-dev/momentics-workspace/headlessTest/arm' 
 
qcc -Vgcc_ntoarmv7le -lang-c++ -Wl,-rpath-link,C:/bbndk/target_10_3_1_995/qnx6/armle-v7/lib -Wl,-rpath-link,C:/bbndk/target_10_3_1_995/qnx6/armle-v7/usr/lib -Wl,-rpath-link,C:/bbndk/target_10_3_1_995/qnx6/armle-v7/usr/lib/qt4/lib -Wl,-rpath-link,C:/bbndk/target_10_3_1_995/qnx6/armle-v7/usr/lib/qt4/lib -o o.le-v7-g/headlessTest o.le-v7-g/.obj/applicationui.o o.le-v7-g/.obj/main.o o.le-v7-g/.obj/moc_applicationui.o -LC:/bbndk/target_10_3_1_995/qnx6/armle-v7/usr/lib/bb1 -LC:/bbndk/target_10_3_1_995/qnx6/armle-v7/lib -LC:/bbndk/target_10_3_1_995/qnx6/armle-v7/usr/lib -LC:/bbndk/target_10_3_1_995/qnx6/armle-v7/usr/lib/qt4/lib -LC:/bbndk/target_10_3_1_995/qnx6//usr/lib/qt4/lib -lbb -lbbsystem -lbbcascades -lQtDeclarative -lQtScript -lQtSvg -lQtSql -lsqlite3 -lz -lQtXmlPatterns -lQtGui -lQtNetwork -lsocket -lQtCore -lm -lbps 
 
o.le-v7-g/.obj/main.o: In function `int qmlRegisterType<bb::device::VibrationController>(char const*, int, int, char const*)': 
 
**c:/bbndk/target_10_3_1_995/qnx6/usr/include/qt4/QtDeclarative/qdeclarative.h:191: undefined reference to `bb::device::VibrationController::staticMetaObject' 
 
o.le-v7-g/.obj/main.o: In function `QDeclarativeElement': 
 
**c:/bbndk/target_10_3_1_995/qnx6/usr/include/qt4/QtDeclarative/qdeclarativeprivate.h:87: undefined reference to `bb::device::VibrationController::VibrationController(QObject*)' 
 
o.le-v7-g/.obj/main.o:(.data.rel.ro._ZTVN19QDeclarativePrivate19QDeclarativeElementIN2bb6device19VibrationControllerEEE[_ZTVN19QDeclarativePrivate19QDeclarativeElementIN2bb6device19VibrationControllerEEE]+0x8): undefined reference to `bb::device::VibrationController::metaObject() const' 
 
o.le-v7-g/.obj/main.o:(.data.rel.ro._ZTVN19QDeclarativePrivate19QDeclarativeElementIN2bb6device19VibrationControllerEEE[_ZTVN19QDeclarativePrivate19QDeclarativeElementIN2bb6device19VibrationControllerEEE]+0xc): undefined reference to `bb::device::VibrationController::qt_metacast(char const*)' 
 
o.le-v7-g/.obj/main.o:(.data.rel.ro._ZTVN19QDeclarativePrivate19QDeclarativeElementIN2bb6device19VibrationControllerEEE[_ZTVN19QDeclarativePrivate19QDeclarativeElementIN2bb6device19VibrationControllerEEE]+0x10): undefined reference to `bb::device::VibrationController::qt_metacall(QMetaObject::Call, int, void**)' 
 
o.le-v7-g/.obj/main.o:(.data.rel.ro._ZTIN19QDeclarativePrivate19QDeclarativeElementIN2bb6device19VibrationControllerEEE[_ZTIN19QDeclarativePrivate19QDeclarativeElementIN2bb6device19VibrationControllerEEE]+0x8): undefined reference to `typeinfo for bb::device::VibrationController' 
 
o.le-v7-g/.obj/main.o: In function `~QDeclarativeElement': 
 
**c:/bbndk/target_10_3_1_995/qnx6/usr/include/qt4/QtDeclarative/qdeclarativeprivate.h:91: undefined reference to `bb::device::VibrationController::~VibrationController()' 
 
**c:/bbndk/target_10_3_1_995/qnx6/usr/include/qt4/QtDeclarative/qdeclarativeprivate.h:91: undefined reference to `bb::device::VibrationController::~VibrationController()'cc: C:/bbndk/host_10_3_1_12/win32/x86/usr/bin/ntoarm-ld caught signal 1 
 
** Makefile.Debug:103: recipe for target 'o.le-v7-g/headlessTest' failed 
 
make[2]: *** [o.le-v7-g/headlessTest] Error 1make[2]: Leaving directory 'D:/BB-dev/momentics-workspace/headlessTest/arm' 
 
make[1]: *** [debug] Error 2 
 
Makefile:50: recipe for target 'debug' failed 
 
make: *** [Device-Debug] Error 2make[1]: Leaving directory 'D:/BB-dev/momentics-workspace/headlessTest/arm' 
 
mk/cs-base.mk:31: recipe for target 'Device-Debug' failed 
 
08:44:31 Build Finished (took 1s.47ms)

Линия ошибки отмечены ** (2 звезды). Я сдаюсь !!! Почему добавление простого кода может вызвать проблемы? Пожалуйста, помогите мне! Большое спасибо!

+1

я нашел причина. Я забыл добавить LIBS + = -lbbdevice в файл pro. – Espanola

ответ

0

Я нашел причину. Я забыл добавить LIBS + = -lbbdevice в файл pro.