临时记录

来源:互联网 发布:mac桌面图标管理 编辑:程序博客网 时间:2024/05/23 10:45

在qt creater中配置构建套件时的配置参数主要包含:qmake文件(qt版本)选择、编译器选择、调试器选择。

1.qmake文件的获取:

windows:运行qt库源码包下的configure.exe文件生成qmake.exe。

linux:运行qt库源码包下的configure文件生成qmake。(可能需要配置某些参数)


2.交叉编译工具链(编译器、汇编、连接、调试器):

这个很常见,论坛里和买板子的店家都有提供,解压后直接使用。(需要将路径添加到系统环境变量中)


按道理说,不管是在windows或linux平台下,只要有交叉编译链,即可编译对应ARM设备的程序。

1.linux:通过arm-linux-gcc

2.windows:通过cygwin工具(我没试过)

所以我们在获取以上工具(arm-linux闲相关、arm-windows相关)后,在qt creater中分别导入,然后再配置两个构建套件并保存,这样我们就可以很方便的在windows或linux下开发针对ARM设备的程序了。

然而,据说在windows下交叉开发出现的问题会多点,我没试过也不清楚。反正大家都推荐还是在linux下做开发比较妥当。


如果你只是在windows下开发windows平台的产品,那么你又会多出一个选项——编译器使用MSVC还是MinGw。

以下来自引用:

1.MSVC是指微软的VC编译器。

2.MingGW是指Minimalist GNU on Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时库。

后者是一个windows下可用的gnu工具集,也即具有编译器。在安装MinGw的情况下,在qt creater的编译器选项中可以需要选择你适合的编译器。



注:

1.我觉得构建套件的作用就是帮你把针对某个设备所需的配置(用什么版本的qmake、用什么编译器等)打包,从而在更换目标设备时无需重复选择每个参数。

2.交叉编译中的“交叉”是指系统硬件架构,如:x86架构和ARM架构。

注:

一直有个困惑:ARM设备(我是指嵌入式系统)上的内核、根文件系统、qt库以及我们日后运行在这上面的应用程序等,是不是必须使用同一版本的编译工具链来编译?

在网上看了好久,听到最多的回答就是“应该可以吧”。毕竟这个问题不好说,比如你用两个相差不大的工具链做同一件事,结果没差别都ok,但是版本相差多了,可能就一个ok一个error。所以听到最后,为了避免一切不必要的麻烦,推荐的做法是从头至尾使用同一套编译工具,包括内核、根文件系统、qt库和应用程序等。

附上一个参考帖:自己编的动态库与应用程序必须使用一个(版本)gcc吗? (注意2楼的观点)


这是贴吧一个回复:http://tieba.baidu.com/p/3274116665     如下图








原创粉丝点击