【发布时间】:2011-11-25 16:26:46
【问题描述】:
我是 Qt 新手,交叉编译和移植,所以请多多包涵。
我的目标是在 Playbook OS 上将Qwt library 用于基于 Qt 的应用程序。我在Qt for Blackberry Playbook 上找到了一个不错的教程,并设法在我的平板电脑上运行了一个简单的 Qt“Hello World”应用程序。
我的下一步是构建 Qwt 库并在我的应用程序中使用它。我花了一些时间阅读有关 qmake 的信息,并构建了库以及一个没有问题的应用程序,但是当我运行该应用程序时,它一启动就崩溃了。
以下是我在构建库和我的应用时所采取的步骤:
- 下载了 Qwt 的源代码并使用了 RIM's Qt port 附带的 qmake。供参考:安装 Qt 端口时,它会创建一个 "stage" 目录,qmake 位于此处:
~/stage/nto/armle-v7/usr/lib/qt4/bin/qmake。首先我遇到了关于设计器插件的错误,但在关闭设计器开关后,它编译时没有任何错误或警告。 - 我已经构建了一个随 Qwt 提供的示例。我只在代码中添加了在线(基于教程说明):
QCoreApplication::addLibraryPath("app/native/lib");。这需要告诉应用程序在运行时位于设备上的共享库的位置。这里也没有问题。我的 .pro 文件如下所示:
包括($${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 进行调试(出于其他原因)。
提前感谢您为我的学习经历做出的贡献。
【问题讨论】:
标签: qt porting blackberry-playbook qwt qnx