bin*_*guy 3 linux embedded qt arm
当谈到 QT 和我的 arm-linux 的交叉编译应用程序时,我有点困惑:
到目前为止,我的 AT91SAM9263-EK 上运行着一个 Linux,并且有一个适当的文件系统,包括通过 buildroot 构建的 QT 库。
我还在我的 ubuntu 上构建了 QT-4.8。
现在我想构建一个示例应用程序:
我使用 qmake 在 ubuntu 上的 QT 示例文件夹中创建了一个 makefile;我在 mkspecs/qws/linux-arm-g++ 中使用了给定的 qmake.conf 。
执行 make 时出现错误,因为它包含 qatomic_i386.h 和消息“错误:'asm' 中不可能的约束”。这个头文件显然与我的arm工具链不匹配。
我的问题:如何在我的 ubuntu 上配置 Qt 来为我的 ARM 嵌入式 Linux 构建 Qt 二进制文件?我需要包含由arm工具链构建的任何库吗?
任何帮助表示赞赏!
问候
编辑:我使用 -spec 标志并将路径传递到“qmake.conf”所在的“mkspecs/qws/arm-linux-g++”。我没有在这里更改任何内容,因为我不知道哪个 qmake 变量与链接到我的arm相关库相关。因此使用了正确的编译器,我可以在 make 过程开始时验证它。但我观察到,在一个名为 qconfig.h 的配置文件中,有一个 ARCH 标志设置为 i386,但我不知道如何配置它。我认为我不应该手动编辑这个文件。
EDIT2:有人知道文件 qconfig.h 后面是什么?我应该手动调整吗?
我自己解决:)
经过一段时间的努力和浏览网络后,我更深入地了解了一切是如何协同工作的。我不明白如何为我的 ARM 目标设备生成可执行文件。我想通了两件事:
不要在 PATH 变量的开头添加 X11 的 QT 路径。这可能会扰乱你的交叉编译。
相应地编辑 qmake.conf。添加目标设备的库构建,在我的例子中,该库位于 buildroot 中。将这些行添加到 qmake.conf 文件中:
QMAKE_CFLAGS += -O3 -march=armv5te
QMAKE_CXXFLAGS += -O3 -march=armv5te
QMAKE_INCDIR_QT = /home/user/arm/toolchain/buildroot-2010.11/output/staging/usr/include
QMAKE_LIBDIR_QT = /home/user/arm/toolchain/buildroot-2010.11/output/staging/usr/lib
我现在已经运行了。谢谢大家!
| 归档时间: |
|
| 查看次数: |
13617 次 |
| 最近记录: |