为嵌入式Debian Linux问题编译Qwt

时间:2017-01-26 08:34:02

标签: qt qt5 embedded-linux qwt

我使用gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf工具链,根据http://www.eliasing.com/cubieboard2/qt5-cb2在我的Ubuntu桌面中为一个嵌入式Debian交叉编译了Qt5。 然后我配置了Qt creator并在Ubuntu Desktop上编译了我的应用程序。我在Qt creator中设置了远程设备,并在设备上部署了应用程序。所以我可以在设备上运行我的应用程序(嵌入式Debian)。现在我想在我的项目中添加Qwt库。根据Qwt的网站,我下载了Qwt源文件,cd到sources目录,然后在命令下运行:

-qmake qwt.pro

-make -j 4

-sudo make install

在我的Ubuntu桌面上运行这些命令安装Qwt。但我必须在设备上安装它(我必须交叉编译它)。在Qt交叉编译步骤I中,将-prefix参数设置为/opt/qt/qt5.4-A110。因此,对于Qwt交叉编译的第一步,我使用了波纹管命令:

/opt/qt/qt5.4-A110/bin/qmake qwt.pro

然后当我运行make命令时,我得到了以下错误:

  

请提交完整的错误报告,如果有预处理来源   适当。请包含任何错误的完整回溯   报告。有关说明,请参阅https://bugs.linaro.org。 Makefile文件:8096:   目标食谱' obj / qwt_plot_curve.o'失败了[1]: *   [obj / qwt_plot_curve.o]错误1 make [1]:离开目录   ' /home/amvaj/Projects/A110/OS/ClosedHeart/qt/sources/qwt-6.1.3/src'   Makefile:45:目标' sub-src-make_first-ordered'的配方失败   make:* [sub-src-make_first-ordered]错误2

所以我认为我必须设置ARCH和CROSS_COMPILE参数。所以我清理了源代码然后使用了下面的命令:

make ARCH=arm CROSS_COMPILER=/home/ali/toolchain/bin/arm-linux-gnueabihf-

但我得到了同样的错误。我该怎么办?感谢。

2 个答案:

答案 0 :(得分:0)

我可以编译Qwt。 在qwtconfig.pri我评论了(QWT_CONFIG += QwtPlot)和(QWT_CONFIG += QwtDesigner)并将QWT_INSTALL_PREFIX更改为我的设备rootfs地址。实际上,我的可启动SD卡有一个.img备份并挂载到/media/root。所以我将QWT_INSTALL_PREFIX设置如下:

/media/root/usr/local/qwt-$$QWT_VERSION

然后我使用了我的目标qmake,如下所示:

/media/root/home/qt5/bin/qmake qwt.pro

在这条指令之后,我使用make然后使用sudo make install instaructions,每个瘦身都很好! 现在我想添加QwtPlot,因此我在qwtconfig.pri中取消注释,然后再次执行孔处理。但我给出了以下错误:

  

Makefile:7804:目标配方' obj / qwt_plot_curve.o'失败   make [1]:*** [obj / qwt_plot_curve.o]错误1

QwtPlot需要任何库还是有任何依赖?

答案 1 :(得分:0)

我找到了解决方案! 我的工具链(Linaro 4.9)有内部错误,当我添加QwtPlot时,它崩溃了! 所以解决方案非常简单。我更改了我的工具链并将其降级为Linaro 4.8