• 9304阅读
  • 10回复

[提问]问个小白的问题,具体怎么做才能在ARM开发板上运行qt程序呢? [复制链接]

上一主题 下一主题
离线绘梦之卷
 

只看楼主 倒序阅读 楼主  发表于: 2012-06-08
用虚拟机VM安装的Red Hat Enterprise Linux5
gcc version 4.1.2
arm-linux-gcc 4.3.2
开发板移植内核版本 2.6.22.6
之前,Linux没有安装过任何版本Linux。


最近想移植Qt到ARM9的开发板上,说是移植,其实就是想让qt编写的程序在开发板上跑起来,能在开发板的LCD上显示窗口
所以,在网上看了很多Qt移植的文章,但是Qt变化和更名也确实有点快,网上大多用的Qtopia已经没有了,现在类似Qt/E的只有现在下载的qt-everywhere-opensource-src-4.8.2.tar.gz,然后还有一个就是qt/X11了(没有下载这个)。


网上关于qt-everywhere-opensource-src-4.8.2.tar.gz的安装和移植的文章不多,但还是有的,于是按照有限的文章的提示进行安装,修改了qt-everywhere-opensource-src-4.8.2/mkspace/qws/linux-arm-g++/qmake.conf文件(主要设置为arm可用的版本),然后./configure(后面还有一些配置),之后make通过,但在make install上出错,网上也没有相关的出错分析,实在加载一个库的时候“Stop”了,具体怎么搞定这个库我是不知道的。之前./configure之后有提示是有gmake,于是试了一下,gmake通过,然后使用gmake install成功。设置环境变量之后qmake可用,最后也可以生成相应的可执行文件,不过是二进制文件,要在开发板上运行的。根据文章提示,复制了三个库文件到开发板根文件系统的/lib目录下的相应目录中,同时开发板端设置环境变量,但是执行qmake编译出的二进制文件时提示“Illegal instruction”。


相信在这一板块里过来人还是很多的,希望给予指点,主要是移植Qt程序要做哪些工作不是很清楚。比如:
对根文件系统有什么要求?加入相应的库文件肯定是必须的了。
对内核有什么要求?现在已经修改了LCD部分驱动,启动开发板时可以显示Linux Logo,是否还要移植触摸屏驱动呢?
我在XP系统下安装有QtSDK,是否Linux宿主机环境下也要安装Qt的开发环境以提供相应的库文件呢?


因为是刚刚开始学习嵌入式Linux,Qt更是刚刚起步,对移植Qt则是一头雾水,不知从何下手,想到的问题也不多,希望各位前辈多多指教啊!

离线ppdayz

只看该作者 1楼 发表于: 2012-06-08
回 楼主(绘梦之卷) 的帖子
步骤不对。。
其实很简单
第一,在环境变量中把arm-linux-g++设置正确
$ arm-linux-g++ -v  
Using built-in specs.
..... .....
gcc version 4.5.1 (ctng-1.8.1-FA)
第二,在configure的时候配置正确就行了
-xplatform qws/linux-arm-g++
这个要有
就可以了

如果实在不明白,可以去下个友善6410的文档,里面说的很清楚
离线绘梦之卷

只看该作者 2楼 发表于: 2012-06-08
回 1楼(ppdayz) 的帖子
您好!
这是我根据网上的一些帖子所使用的configure:
./configure -prefix /usr/local/qt-4.8.2-linux-arm-install -embedded arm -host-little-endian -no-cups -no-3dnow -nomake examples -nomake demos -nomake docs -xplatform /qws/linux-arm-g++


使用arm-linux-g++ -v得到的信息是:
Using built-in specs.
……
Thread model: posix
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)


请问以上这两项有问题吗?


我在友善官网下载了一个《MINI6410 Qt4和Qtopia编程指南》。可是这个还是在用Qtopia啊,不是说现在已经没有Qtopia了吗?Qt官网貌似也不提供Qtopia的下载了。



离线xiongyu

只看该作者 3楼 发表于: 2012-06-13
qt-everywhere-opensource-src-4.8.2.tar.gz

这个其实就是QT的源码, 不分你什么LINUX , WINDOWS X86 ARM。

这个就是大一统的源码包。

make  步骤没出错 ,证明是编译好的
make install 只是一个 copy的过程, 出错了应该是你没权限之类的吧
为自己而已努力吧... 我的博客 http://xycode.org
离线xiongyu

只看该作者 4楼 发表于: 2012-06-13
还有, 如果你的编译器是友善之臂提供的, 我建议你换成4.4.3

4.3.4 有很多BUG
为自己而已努力吧... 我的博客 http://xycode.org
离线绘梦之卷

只看该作者 5楼 发表于: 2012-07-09
回 3楼(xiongyu) 的帖子
我想问一下,这个Qt的源码究竟有什么用处呢,是要编译出符合相应架构的库文件吗?还是像Win下的SDK,可以直接进行开发,最终可以运行的Qt程序要怎样才能在开发板上跑起来呢?谢谢。
离线typeng
只看该作者 6楼 发表于: 2012-07-15
回 5楼(绘梦之卷) 的帖子
有Qt源码,就可以通过针对不同平台的编译器,编译成可以运行在不同平台上的库文件。这样,我们自己的程序就可以实现跨平台,即在不同的平台上运行时调用不同平台的库文件。
离线xiongyu

只看该作者 7楼 发表于: 2012-07-17
回 5楼(绘梦之卷) 的帖子
windows linux 软件不兼容, 这个你应该知道吧, 所以在不同的系统(是系统)就要重新编译一次。
WINDOWS QT SDK 是NOKIA编译好的for windows 的版本, 当然也有LINUX, 都是已经编译好的。
这里就是让你自己选择系统, 不用下载一个固定包, 这个方便。

如果要上板子, 看架构, 除了分系统外 还要分架构, X86的LINUX版本, 不可以用在ARM上
要用在ARM上, 你要用arm-linux-g++ 去编译   X86的用g++ 就可以了。
为自己而已努力吧... 我的博客 http://xycode.org
离线绘梦之卷

只看该作者 8楼 发表于: 2012-11-17
哈,这个我明白,现在搞不明白的应该是这个移植问题,怎样才能在ARM板上跑Qt程序,这个流程现在还不清楚。
离线limj1987

只看该作者 9楼 发表于: 2012-12-21
碰巧我也是刚开始学嵌入式Linux,给你介绍一下我自己的经验吧。首先是搭建交叉编译环境arm-linux-gcc,并设置好环境变量,然后是移植Qt库,这个库一定是arm板上运行的库,如果有编译好的Qt库直接用就可以了,没必要自己在亲自编译一遍(我自己曾经编译过一次,浪费很多时间总算编译过了,一个人编译好了之后其他人都可以用了)。其次是安装QtCreator,如qt-sdk-linux-x86-opensource-2009.03.1.bin,装好之后就可以在自己本上调试了,调试过了之后再用arm库编译一边就可以了,具体步骤是:
1.linux中建立工程,编写程序,编译通过后,仅保留 .h和.cpp源代码文件;
2.打开一个终端,输入
source /usr/local/Trolltech/QtEmbedded-4.5.3-arm/setenv-arm.sh
3.cd到当前工程目录,输入 qmake -project命令,之后输入qmake命令,最后输入make命令编译;
4.编译好的菱形可执行文件放在文件系统中,通过NFS挂载调试,或者通过U盘拷贝到ARM中,使ARM直接运行程序。

离线chana0322

只看该作者 10楼 发表于: 2013-01-30
建议你看一下友善之臂tiny6410的用户手册和qt开发指南,写得很详细。很适合初学者。在论坛上就有。
快速回复
限100 字节
 
上一个 下一个