Я новичок в Qt, кросс-компиляции и портировании, поэтому, пожалуйста, потерпите меня.
Моя цель - использовать библиотеку Qwt в Playbook OS для приложений на Qt.Я нашел хороший учебник по Qt для Blackberry Playbook , и мне удалось запустить на моем планшете простое приложение Qt "Hello World".
Следующим моим шагом было создание библиотеки Qwt ииспользовать это в моем приложении.Я потратил некоторое время, читая о qmake, и я собрал библиотеку вместе с приложением без проблем, но когда я запускаю приложение, оно вылетает, как только я его запускаю.
Вот шаги, которые я предпринял при создании обоихбиблиотека и мое приложение:
- Загрузил исходный код для Qwt и использовал qmake, который поставляется с портом Qt RIM .Для справки: при установке порта Qt он создаст каталог "stage" , и qmake находится здесь:
~/stage/nto/armle-v7/usr/lib/qt4/bin/qmake
.Сначала я получил ошибку о плагине конструктора, но после выключения дизайнера он скомпилировался без ошибок и предупреждений. - Я собрал один из примеров, поставляемых с Qwt.Я только добавил в коде строку (на основе инструкций):
QCoreApplication::addLibraryPath("app/native/lib");
.Это необходимо, чтобы сообщить приложению, где во время выполнения находятся общие библиотеки, расположенные на устройстве.Здесь тоже нет проблем.Мой файл .pro выглядел следующим образом:
include ($$ {PWD} /../ examples.pri)
TARGET = curvdemo1
DESTDIR = .
QMAKE_LFLAGS += '-Wl,-rpath,\'./app/native/lib\''
LIBS += -lbbsupport
SOURCES = \
curvdemo1.cpp
package.target = $${TARGET}.bar
package.depends = $$TARGET
package.commands = blackberry-nativepackager \
-devMode \
-package $${TARGET}.bar -arg -platform -arg blackberry \
blackberry-tablet.xml $$TARGET \
-e icon.png res/icon.png \
-e splashscreen.png res/splashscreen.png \
-e $$[QT_INSTALL_LIBS]/libQtCore.so.4 lib/libQtCore.so.4 \
-e $$[QT_INSTALL_LIBS]/libQtGui.so.4 lib/libQtGui.so.4 \
-e $$[QT_INSTALL_LIBS]/libQtOpenGL.so.4 lib/libQtOpenGL.so.4 \
-e $$[QT_INSTALL_LIBS]/libQtNetwork.so.4 lib/libQtNetwork.so.4 \
-e $$[QT_INSTALL_LIBS]/libbbsupport.so.4 lib/libbbsupport.so.4 \
-e $$[QT_INSTALL_PLUGINS]/platforms/libblackberry.so lib/platforms/libblackberry.so
-e /home/builder/Qwt/qwt-6.0.1/lib/libqwt.so.6 lib/libqwt.so.6 \
-e /home/builder/Qwt/qwt-6.0.1/lib/libqwtmathml.so.6 lib/libqwtmathml.so.6
QMAKE_EXTRA_TARGETS += package
Я упаковал приложение и развернул его, однакопри запуске приложения происходит сбой, как только исчезает заставка.
Перечисленные выше шаги относятся к моей попытке использовать Qwt в качестве разделяемой библиотеки.Я попытался создать ее как статическую библиотеку, удалив QwtDll
согласно инструкциям библиотеки, но окончательный результат остается тем же.Я могу сказать, что двоичный файл использует статические библиотеки в зависимости от его размера.
Обладая небольшими знаниями, я могу предположить, что библиотека Qwt не была правильно построена и не может быть загружена моим тестовым приложением должным образом.Если да, то как правильно перенести эту библиотеку в Playbook OS?Если нет, то, что еще мне не хватает на этих этапах?
Кстати, я не могу пока использовать отладку Momentics для отладки (по другим причинам).
Заранее благодарю за ваш вклад вмой учебный опыт.