我是 Qt 的新手,交叉编译和移植,所以请多多包涵。
我的目标是将 Playbook OS 上的Qwt 库用于基于 Qt 的应用程序。我在Qt for Blackberry Playbook上找到了一个不错的教程,并且我设法在我的平板电脑上运行了一个简单的 Qt“Hello World”应用程序。
我的下一步是构建 Qwt 库并在我的应用程序中使用它。我花了一些时间阅读有关 qmake 的信息,并且我构建了该库以及一个没有问题的应用程序,但是当我运行该应用程序时,它一启动就崩溃了。
以下是我在构建库和我的应用程序时采取的步骤:
- 下载了 Qwt 的源代码并使用了RIM 的 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 进行调试(出于其他原因)。
预先感谢您对我的学习经历的贡献。