找回密码
 立即注册
收起左侧

将虚拟ubuntu下的qt4编写的程序,放到开发板上运行

15
回复
11365
查看
[复制链接]
累计签到:10 天
连续签到:1 天
来源: 2015-3-23 15:12:39 显示全部楼层 |阅读模式
2Qter豆
各位:
  
我安装的QT是在ubuntu上直接用命令sudo apt-get install qt4-dev-tools   qt4-designer  qt4-doc...........安装的。
     现在,想把qt编写的用户界面运行在开发板上,但是不能运行
     查看了相关资料,若用安装包安装的QT直接将安装目录拷贝到开发板上即可让QT程序运行。但是我是用命令安装的,因此不能找到相应的安装目录。所以无法移植
    所以我想问下,用命令安装的QT如何才能移植到开发板上??

最佳答案

查看完整内容

我的交叉编译器是arm-linux-gcc-4.3.3,其实主要就是修改环境变量,把所涉及的路径切换 setX86_Env脚本setArm_Env脚本
回复

使用道具 举报

累计签到:597 天
连续签到:1 天
2015-3-23 15:12:40 显示全部楼层
我的交叉编译器是arm-linux-gcc-4.3.3,其实主要就是修改环境变量,把所涉及的路径切换

setX86_Env脚本
  1. #!/bin/sh

  2. export QPEDIR=/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia
  3. export QTOPIA_DEPOT_PATH=/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia
  4. export QTDIR=/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2
  5. export DQTDIR=/opt/EmbedSky/Qte/x86-qtopia-2.2.0/dqt
  6. export TMAKEDIR=/opt/EmbedSky/Qte/x86-qtopia-2.2.0/tmake
  7. export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++
  8. export PATH=$QPEDIR/bin:$QTDIR/bin:$DQTDIR/bin:$TMAKEDIR/bin:$PATH
  9. export LD_LIBRARY_PATH=$QPEDIR/lib:$QTDIR/lib:$DQTDIR/lib:$LD_LIBRARY_PATH
复制代码
setArm_Env脚本
  1. #!/bin/sh

  2. export QPEDIR=/opt/EmbedSky/Qte/arm-qtopia-2.2.0/qtopia
  3. export QTOPIA_DEPOT_PATH=/opt/EmbedSky/Qte/arm-qtopia-2.2.0/qtopia
  4. export QTDIR=/opt/EmbedSky/Qte/arm-qtopia-2.2.0/qt2
  5. export DQTDIR=/opt/EmbedSky/Qte/arm-qtopia-2.2.0/dqt
  6. export TMAKEDIR=/opt/EmbedSky/Qte/arm-qtopia-2.2.0/tmake
  7. export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
  8. export PATH=$QPEDIR/bin:$QTDIR/bin:$DQTDIR/bin:$TMAKEDIR/bin:$PATH
  9. export LD_LIBRARY_PATH=$QPEDIR/lib:$QTDIR/lib:$DQTDIR/lib:$LD_LIBRARY_PATH
复制代码
回复

使用道具 举报

尚未签到

2015-3-23 15:35:46 显示全部楼层
难道你不知道cpu有分不同指令集的么?    不同指令集cpu下编译的程序是不能直接移植运行的

你看看开发板有没有自带交叉编译工具链
回复

使用道具 举报

累计签到:10 天
连续签到:1 天
2015-3-23 16:05:28 显示全部楼层
没有,开发板上没有交叉编译工具链,但是windows下的Ubuntu上有交叉编译工具链!
现在的问题是将qt程序运行在arm开发板上!
回复

使用道具 举报

累计签到:10 天
连续签到:1 天
2015-3-24 09:11:19 显示全部楼层
Joey_Chan 发表于 2015-3-23 15:35
难道你不知道cpu有分不同指令集的么?    不同指令集cpu下编译的程序是不能直接移植运行的

你看看开发板有 ...

没有,开发板上没有交叉编译工具链,但是windows下的Ubuntu上有交叉编译工具链!
现在的问题是将qt程序运行在arm开发板上!
回复

使用道具 举报

尚未签到

2015-3-24 09:37:34 显示全部楼层
秋天的柳 发表于 2015-3-24 09:11
没有,开发板上没有交叉编译工具链,但是windows下的Ubuntu上有交叉编译工具链!
现在的问题是将qt程序 ...

你用交叉编译后传过去不就行了么
回复

使用道具 举报

累计签到:597 天
连续签到:1 天
2015-3-24 09:38:16 显示全部楼层
开发板上确实不需要交叉编译工具链,需要的是qt程序运行时所包含的各类库文件

而在电脑上的linux需要装有编译工具链,编译出linux-pc版的,可以在电脑上运行;编译出linux-arm版的,才可以到ARM开发板上运行
回复

使用道具 举报

累计签到:10 天
连续签到:1 天
2015-3-24 11:21:08 显示全部楼层
本帖最后由 秋天的柳 于 2015-3-24 11:22 编辑
shasidaran 发表于 2015-3-24 09:38
开发板上确实不需要交叉编译工具链,需要的是qt程序运行时所包含的各类库文件

而在电脑上的linux需要装有 ...


1,qt运行时包含的库文件有哪些?是不是只要把我设计的工程中涉及到的文件放入就好了还是安装时安装目录的所有文件都要拷入?
2,在pc机上编译时,我直接用的make 编译的,可以在电脑上运行。那我想问下,如何用交叉编译器编出运行在开发板上的呢?(我用的交叉编译器是arm_v5t_le-gcc,可以将.c文件变成二进制文件)

点评

是这样的,qt有两部分:creator(代码编辑器)、opensource_everywhere(qt软件源码)(应该可以这么理解),然后你要在linux下编译出opensource_everywhere的两个版本(通过修改交叉编译器的配置文件,就会生成不同的  详情 回复 发表于 2015-3-26 16:57
回复

使用道具 举报

累计签到:10 天
连续签到:1 天
2015-3-25 09:08:28 显示全部楼层
Joey_Chan 发表于 2015-3-24 09:37
你用交叉编译后传过去不就行了么

那如何交叉编译呢,在PC机上编译的是直接运行在pc机上的可执行文件,如何编译才能在在arm开发板上运行??
回复

使用道具 举报

尚未签到

2015-3-25 09:34:20 显示全部楼层
秋天的柳 发表于 2015-3-25 09:08
那如何交叉编译呢,在PC机上编译的是直接运行在pc机上的可执行文件,如何编译才能在在arm开发板上运行? ...

这个要看你的交叉编译环境是怎么样的了,最好自己搜一下。

Ubuntu自带的是一个chroot,先进入chroot再调用qmake make这样
回复

使用道具 举报

累计签到:10 天
连续签到:1 天
2015-3-25 15:58:17 显示全部楼层
Joey_Chan 发表于 2015-3-25 09:34
这个要看你的交叉编译环境是怎么样的了,最好自己搜一下。

Ubuntu自带的是一个chroot,先进入chroot再调 ...

我的ubuntu 的交叉编译环境是arm_v5t_le-gcc。是要先进入这个环境吗?那请问如何进入呢
回复

使用道具 举报

尚未签到

2015-3-25 23:20:43 显示全部楼层
没用过这个环境。。。 帮不了你
回复

使用道具 举报

累计签到:10 天
连续签到:1 天
2015-3-26 09:07:30 显示全部楼层
Joey_Chan 发表于 2015-3-25 23:20
没用过这个环境。。。 帮不了你

好吧!但还是非常感谢哈
回复

使用道具 举报

累计签到:597 天
连续签到:1 天
2015-3-26 16:57:51 显示全部楼层
秋天的柳 发表于 2015-3-24 11:21
1,qt运行时包含的库文件有哪些?是不是只要把我设计的工程中涉及到的文件放入就好了还是安装时安装目录 ...

是这样的,qt有两部分:creator(代码编辑器)、opensource_everywhere(qt软件源码)(应该可以这么理解),然后你要在linux下编译出opensource_everywhere的两个版本(通过修改交叉编译器的配置文件,就会生成不同的Make file,然后执行make就会不同),for linux_PC和Linux_ARM,注意这两个版本的库也不同。

1、不需要将安装目录的所有文件拷入,但最好是将所有的linux_arm版编译出来的库文件(包括字体库、qt运行依赖库等等)考到ARM学习板中,这样以后开发板运行Qt程序只要拷一个程序到开发板就可以运行了。

2、直接可以在电脑上运行,说明编译出来的是Linux for PC版的,ARM版是没法直接运行在开发板上的。主要是改变交叉编译的环境变量。

我觉得已经说的比较具体了
回复

使用道具 举报

累计签到:10 天
连续签到:1 天
2015-3-30 14:35:58 显示全部楼层
shasidaran 发表于 2015-3-26 16:57
是这样的,qt有两部分:creator(代码编辑器)、opensource_everywhere(qt软件源码)(应该可以这么理解) ...

哦哦   
那我想问下如何修改交叉编译器的配置文件,从而生成不同的makefile??
回复

使用道具 举报

累计签到:10 天
连续签到:1 天
2015-4-2 14:36:17 显示全部楼层
shasidaran 发表于 2015-3-31 09:41
我的交叉编译器是arm-linux-gcc-4.3.3,其实主要就是修改环境变量,把所涉及的路径切换

setX86_Env脚本set ...

哦 知道了,谢谢哈,顺便问下,我安装了qtcreator ,但是没有创建桌面图标,我知道安装目录在哪儿,但是不知道哪个文件可以开启,问下怎么打开qtcreator
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了