Closed. This question needs to be more focused。它当前不接受答案。












想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。

7年前关闭。



Improve this question




亲爱的所有{C++ | QT | ARM Processors}开发人员

您好

最近,我参与了QT/ARM处理器软件开发项目。
该项目的一般组成部分是:
Processor: Mini440 FriendlyARM (400 MHz Samsung S3C2440 ARM926T),
    www.friendlyarm.net
    www.arm9.net
OS: Linux (Kernel version 2.6.32)
Programming Language: C++ (GCC/g++)
GUI Framework: QT

该项目的主要目的是为
嵌入式手持设备,使用QT/嵌入式Linux。

主机(开发计算机)上的命令uname -a的输出为:

$ uname -a

Linux蝎子3.5.0-39-通用#60〜precise1-Ubuntu SMP Wed Aug 14 15:38:41 UTC 2013
x86_64 x86_64 x86_64 GNU/Linux

在嵌入式基于ARM的设备上,命令uname -a的输出为:

Liunx FriendlyARM 2.6.32-FriendlyARM#5 6月6日星期三15:50:50
HKT 2012 armv4tl未知。

我的第一个问题是:

问:主机和目标计算机具有相同的体系结构是否重要,
我是说两个都应该是32位(x86或i586/i686)还是都应该是64位(x86_64)?

我做了以下步骤:
  • 我使用基于QT Designer(5.0.2)的QT Creator(2.7.0)编写了一个简单的GUI。
    在台式机Linux计算机(主机)上
  • 基于知识,我在最近两个月从书籍和Intenet中获得了有关交叉编译,工具链和许多其他相关概念的知识,我发现我必须安装Trolltech的另一种软件Qtopia,即QT的嵌入式版本。我尝试
    安装最新版本的Qtopia,称为qtopia-core-opensource-src-4.3.5
    在这一点上,我在配置,构建和制作
    软件。一个问题是主机上的g++是4.8.1(非常新),但是Qtopia
    是大约7年前。当我尝试从源代码构建Qtopia时
    g++编译器会发出一些C++错误,例如:

    错误:“ptrdiff_t”未命名类型
    错误:未在此范围中声明“追加”,并且在声明的位置未声明
    通过依赖于参数的查找

  • 当然,我解决了这些问题,但是很明显g++会出现这些错误
    因为Qtopia是使用C++ 98编写的,但是g++ 4.8.1是基于C++ 11的
    我的问题是:

    问:在Qtopia中使用哪个版本的GCC是否重要?
    另一件事是应该使用哪个版本的QT/Embedded?

    问:我是否必须使用旧版本的QT/Embedded,例如Qtopia或
    我可以使用较新的版本,例如qt-everywhere-opensource-src-4.8.4?

    另一个问题与内核版本有关:重要吗
    问:主机和目标计算机具有相同的内核号(x.y.z)是否重要?

    如您所见,我迷失了交叉编译和移植书面软件的细节
    从主机到嵌入式设备。使用QT和编写C++几乎没有问题
    在桌面版本中。
    最后,非常感谢您提出您的通用但实用的指南/提示
    从x86 GCC交叉编译到FreindlyARM平台。

    请说明一下

    TIA

    赛义德(Saeed Amrollahi)Boyouki

    最佳答案



    不,您可以进行任何更改,尽管我从未见过32位主机和64位目标。另一种组合应该只是根据我的知识。



    是的,这很重要。不要将新旧软件混在一起,因为它们不能很好地融合在一起。



    不。实际上,不要使用古老的Qtopia,请尝试使用最新的Qt版本(如Qt 5.2)。原因仅是存在设计缺陷的事实,并且这些天没有维护。



    不,实际上几乎总是不同的。这是由于这样的事实,Linux内核种类繁多,供不同的发行版或发行版生成器使用。



    如果要针对目标自行构建Qt,则需要注意-platform-xplatform选项。前者定义您的主机平台,而后者定义嵌入式目标平台。

    基本上,您需要以mkspecs文件的形式使qmake对您的主板提供适当的支持。如果不是这样,则基于现有的从头开始获得一个相对容易。

    在为嵌入式板构建软件时,需要在基于qmake的项目中使用-spec选项来选择正确的目标。

    我还建议考虑将QtCreator作为一个新手,在这里您可以正确配置“工具包”,自定义部署步骤等。它具有很多内置的跨工具链开发支持。

    关于c++ - C++/QT/ARM处理器交叉编译/编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20919523/

    10-11 18:20