Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
7年前关闭。
Improve this question
亲爱的所有{C++ | QT | ARM Processors}开发人员
您好
最近,我参与了QT/ARM处理器软件开发项目。
该项目的一般组成部分是:
该项目的主要目的是为
嵌入式手持设备,使用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
想改善这个问题吗?更新问题,使其仅关注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)?
我做了以下步骤:
在台式机Linux计算机(主机)上
安装最新版本的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