• 33168阅读
  • 81回复

QT5.3 On ARM Board [复制链接]

上一主题 下一主题
离线jnny_cn
 

只看楼主 倒序阅读 楼主  发表于: 2014-05-21
qt5.3 今天发布了
交叉编译了3个多小时,在ARM板上正常运行^____________^

离线jnny_cn

只看该作者 1楼 发表于: 2014-05-21
使用默认选项
经测试bluetooth可用
离线沙加

只看该作者 2楼 发表于: 2014-05-21
我编译5.2的时候,没有标题栏,这是什么?就是说没有最大化 最小化 和关闭!!!!
离线沙加

只看该作者 3楼 发表于: 2014-05-21
QQ 2985701120 方便交流下吗???
离线jnny_cn

只看该作者 4楼 发表于: 2014-05-21
回 沙加 的帖子
沙加:我编译5.2的时候,没有标题栏,这是什么?就是说没有最大化 最小化 和关闭!!!! (2014-05-21 21:18) 

不知你运行的是什么窗口管理器?
我运行的是matchbox

另外我编译的版本是基于x-server的desktop版
离线彩阳

只看该作者 5楼 发表于: 2014-05-21
效果不错!
上海Qt开发联盟,热忱地欢迎你的加入!
离线airqj

只看该作者 6楼 发表于: 2014-05-22
配置可否分享一下?
离线jnny_cn

只看该作者 7楼 发表于: 2014-05-22
qt530:
./configure -opensource -confirm-license -nomake examples -nomake tests -no-qml-debug -qt-xcb -prefix /usr

这个配置前提是已经交叉编译好xorg
离线liudianwu

只看该作者 8楼 发表于: 2014-05-22
牛人啊!
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线jnny_cn

只看该作者 9楼 发表于: 2014-05-23
先交叉编译x11,在交叉编译matchbox

内容来自[短消息]
离线jnny_cn

只看该作者 10楼 发表于: 2014-05-23
)   下载并安装scratchbox 
连接:h t t p://www.scratchbox.org/ 以上网的文档里有教程也有相关下载 
安装好scratchbox建立帐户并设定好新的target 
 
2)  接下来的操作都在scratchbox中 
下载以依赖下库(不都是必须,可根据需要裁减),解压到一个目录中 
按照以下顺序编译: 
 
cd zlib-1.2.5 
make distclean 
./configure --shared --prefix=/usr 
make 
make install 
cd .. 
 
cd glib-2.26.0 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd libpng-1.2.44 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd jpeg-7 
make distclean 
./configure --enable-shared --enable-static --prefix=/usr 
make 
make install 
cd .. 
 
cd tiff-3.9.4 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd expat-2.0.0 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd freetype-2.4.4 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd atk-1.32.0 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd libxml2-2.7.8 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd fontconfig-2.8.0 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd pixman-0.21.2 
make distclean 
./configure --disable-arm-neon --prefix=/usr  
make 
make install 
cd .. 
 

cd sqlite-3.7.4 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd tslib-1.0 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd links-1.00 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd openssl-1.0.0c 
make distclean 
./Configure --prefix=/usr --openssldir=/usr/openssl linux-armv4 
make 
make install 
cd .. 
 
cd Python-2.7 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
执行 ldconfig

3)编译X11与相关依赖库 h t t p://www.x.org/releases/X11R7.6/src/ 
在以上网之中把除了everything目录外其他目录中的都下下来(不是都必要,但全下下来省心)并保持原目录结构不变,解压缩,这里假设相关目录督保存在X11R76这个目录下 
 
执行:export PYTHON=/usr/bin/python2.7 
 

1)进入util目录 
    进入util-macros-1.11.0目录 
        make distclean 
        ./configure --prefix=/usr 
        make 
        make install 
         
2)进入font目录 
    进入font-util-1.2.0目录 
    make distclean 
    ./configure --prefix=/usr 
    make 
    make install 
     
3)进入proto目录 
    分别进入以下目录,执行以下命令 
    make distclean 
    ./configure --prefix=/usr 
    make 
    make install     
     
    目录列表(省略版本号) 
    bigreqsproto 
    compositeproto 
    damageproto 
    dmxproto 
    dri2proto 
    fixesproto 
    fontsproto 
    glproto 
    inputproto 
    kbproto 
    randrproto 
    recordproto 
    renderproto 
    resourceproto 
    scrnsaverproto 
    videoproto 
    x11proto 
    xcmiscproto 
    xextproto 
    xf86bigfontproto 
    xf86dgaproto 
    xf86driproto 
    xf86vidmodeproto 
    xineramaproto 
    xcb(在xcb目录中) 
     
4)进入lib目录 
    分别进入以下目录,执行以下命令 
    make distclean 
    ./configure --prefix=/usr 
    make 
    make install     
     
    目录列表(省略版本号) 
    libxtrans 
    libXau 
    libXdmcp 
     
    pthread-stubs(在xcb目录中) 
    libxcb(在xcb目录中) 
    util(在xcb目录中) 
     
    libX11 
    libXext 
    libdmx 
    libfontenc 
    libFS 
    libICE 
    libSM 
    libXt 
    libXmu 
    libXpm 
    libXaw 
    libXfixes 
    libXcomposite 
    libXrender 
    libXdamage 
    libXcursor 
    libXfont 
    libXft 
    libXi 
    libXinerama 
    libxkbfile 
    libXrandr 
    libXRes 
    libXScrnSaver 
    libXtst 
    libXv 
    libXvMC 
    libXxf86dga 
    libXxf86vm 
    libpciaccess 
     
5)进入data目录 
    进入xbitmaps-1.1.1目录 
    make distclean 
    ./configure --prefix=/usr 
    make 
    make install 
     
6)进入app目录 
    分别进入以下目录,执行以下命令 
    make distclean 
    ./configure --prefix=/usr 
    make 
    make install 
     
    目录列表(省略版本号) 
    bdftopcf 
    iceauth 
    luit 
    mkfontdir 
    mkfontscale 
    sessreg 
    setxkbmap 
    x11perf 
    xauth 
    xbacklight 
    xcmsdb 
    xcursorgen 
    xdpyinfo 
    xev 
    xhost 
    xinit 
    xinput 
    xkbcomp 
    xkbevd 
    xkbutils 
    xkill 
    xlsatoms 
    xmodmap 
    xprop 
    xrandr 
    xrdb 
    xrefresh 
    xset 
    xsetroot 
    xvinfo 
    xwd 
    xwininfo 
    xwud 
     
7)进入xserver目录 
    进入xorg-server-1.9.3目录 
    make distclean 
    ./configure --disable-glx --enable-dri=no --enable-dri2=no --prefix=/usr 
    make 
    make install 
     
8)进入driver目录 
    分别进入以下目录,执行以下命令 
    make distclean 
    ./configure --prefix=/usr 
    make 
    make install 
     
    目录列表(省略版本号) 
    xf86-input-evdev 
    xf86-input-keyboard 
    xf86-input-mouse 
    xf86-input-void 
    xf86-input-tslib 
     
    xf86-video-fbdev 
     
至此xorg server 编译完毕

4)编译gtk与相关依赖库 
接下来的操作都在scratchbox中 
下载以依赖下库(不都是必须,可根据需要裁减),解压到一个目录中 
按照以下顺序编译: 
 
ldconfig 
 
cd cairo-1.10.0 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd pango-1.28.3 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd gtk+-2.20.1 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd libiconv-1.13.1 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd gtk-engines-2.20.1 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd libmatchbox-1.9 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
cd matchbox-window-manager-1.2 
make distclean 
./configure --prefix=/usr 
make 
make install 
cd .. 
 
ldconfig 
 
至此gtk+编译完成 

以上编译选项可在armv5,armv6下运行 
 
另外如果是编译armv4架构的要在所有的编译选项处加上-march=armv4t 
 
另外如果是编译armv7架构的要在所有的编译选项处加上-mthumb -march=armv7-a
离线沙加

只看该作者 11楼 发表于: 2014-05-23
回 jnny_cn 的帖子
jnny_cn:)   下载并安装scratchbox 
连接:h t t p://www.scratchbox.org/ 以上网的文档里有教程也有相关下载 
安装好scratchbox建立帐户并设定好新的target 
 
2)  接下来的操作都在scratchbox中 
....... (2014-05-23 09:10) 

我用的ltib,我已经在里面配置编译了xorg,编译成功了,但是不知道如何启动xorg。我启动了一个xfb...服务(具体名字忘了,是以xfb开头的),此时我在运行matchbox-destop,会出现一个界面,但是好像无法触屏啊,可以看到一个“X”号在屏幕中间,屏幕最下方还能显示时间。。。

离线jnny_cn

只看该作者 12楼 发表于: 2014-05-23
按说你能看到X就说明x-server正常启动了
离线jnny_cn

只看该作者 13楼 发表于: 2014-05-23
以下是我起动X的rcS部分

export HOME=/root
export DISPLAY=:0

X -nolisten tcp&
sleep 1

#matchbox-window-manager &

#gtk-demo&
离线jnny_cn

只看该作者 14楼 发表于: 2014-05-23
export HOME=/root
export DISPLAY=:0

X -nolisten tcp&
sleep 1

matchbox-window-manager &

gtk-demo&
离线dragon_fly

只看该作者 15楼 发表于: 2014-05-23
回 jnny_cn 的帖子
jnny_cn:)   下载并安装scratchbox 
连接:h t t p://www.scratchbox.org/ 以上网的文档里有教程也有相关下载 
安装好scratchbox建立帐户并设定好新的target 
 
2)  接下来的操作都在scratchbox中 
....... (2014-05-23 09:10) 

需要编译这么多,学习下
离线wjian10

只看该作者 16楼 发表于: 2014-05-24
好东西,出差回去研究一下。
离线青春岁月

只看该作者 17楼 发表于: 2014-05-26
大牛,能说一下!你的是什么ARM平台吗?
go!   go!  go!  go!
离线jnny_cn

只看该作者 18楼 发表于: 2014-05-26
回 青春岁月 的帖子
青春岁月:大牛,能说一下!你的是什么ARM平台吗? (2014-05-26 08:46) 

s5pv210

实际上适用所有armv5

这只是个文件系统

不同芯片区别大的主要是boot linux-kernel,

文件系统只有依附芯片的内核模块会不同,

其余可以经过少量适配,就可以通用
离线jnny_cn

只看该作者 19楼 发表于: 2014-05-26
回 沙加 的帖子
沙加:我编译5.2的时候,没有标题栏,这是什么?就是说没有最大化 最小化 和关闭!!!! (2014-05-21 21:18) 

使用 ./xxx -platofrm linuxfb 就是没有标题栏

使用 ./xxx -platform xcb 就有标题栏

以上实机测试
离线chenzilin

只看该作者 20楼 发表于: 2014-05-30
离线peterlin82

只看该作者 21楼 发表于: 2014-06-05
大哥您真的是神人。
不过小弟没看到Bluez蓝芽部份的设定。
不知您的蓝芽为什么能动?
离线jnny_cn

只看该作者 22楼 发表于: 2014-06-05
回 peterlin82 的帖子
peterlin82:大哥您真的是神人。
不过小弟没看到Bluez蓝芽部份的设定。
不知您的蓝芽为什么能动? (2014-06-05 21:23) 

默认的configure里面就会有bluetooth的设置

如果你的系统里已经有了dbus的话,qt就会使能bluetooth的模块

所以想使用bluetooth先要编译好dbus
离线jnny_cn

只看该作者 23楼 发表于: 2014-06-05
回 peterlin82 的帖子
peterlin82:大哥您真的是神人。
不过小弟没看到Bluez蓝芽部份的设定。
不知您的蓝芽为什么能动? (2014-06-05 21:23) 

我的配置里只是禁止了一些demo ,doc,qml模块的编译,其他基本使用默认的配置
离线ppa2001

只看该作者 24楼 发表于: 2014-06-09
楼主你好,我安装你的编译方式,在Ubuntu14下编译了出来,但QT creator的界面,显示有乱码。
求指点下,而且现在编译的电脑上运行的程序,怎么配置为ARM版本的?

离线real_akang

只看该作者 25楼 发表于: 2014-06-12
回 jnny_cn 的帖子
jnny_cn:qt530:
./configure -opensource -confirm-license -nomake examples -nomake tests -no-qml-debug -qt-xcb -prefix /usr
这个配置前提是已经交叉编译好xorg (2014-05-22 10:27) 

我是新手,想请教一下使用xorg而不是直接在framebuffer上的好处是什么,xorg会不会要求更高的配置,能带来什么方便。我用的i.MX6,之前从freescale的网站上看了Building QT for i.MX6的过程https://community.freescale.com/docs/DOC-94066. 是不是想方便的使用软键盘的话就得用xorg,matchbox.
离线jnny_cn

只看该作者 26楼 发表于: 2014-06-12
如果没有显卡驱动,xorg也是操作framebuffer的
但是许多软件都要求有x的支持才能编译,如果有这种软件的需求,那么就需要x的支持,
而且基于xorg的qt所支持的特性要远远多于embeded qt版

软键盘自己做也不是很复杂
离线jnny_cn

只看该作者 27楼 发表于: 2014-06-12
回 ppa2001 的帖子
ppa2001:楼主你好,我安装你的编译方式,在Ubuntu14下编译了出来,但QT creator的界面,显示有乱码。
求指点下,而且现在编译的电脑上运行的程序,怎么配置为ARM版本的?
[图片]
 (2014-06-09 22:58) 

估计你的字体路径没有配置好

要想在arm版行运行,你要有相应的交叉工具链,并且提前编译好相应依赖库,可以看看上面回帖中的依赖顺序
离线ppa2001

只看该作者 28楼 发表于: 2014-06-12
谢谢了,scratchbox  第一次听说,我看下,感觉5.X好像比4.X麻烦多了·
离线jnny_cn

只看该作者 29楼 发表于: 2014-06-12
回 ppa2001 的帖子
ppa2001:[表情] 谢谢了,scratchbox  第一次听说,我看下,感觉5.X好像比4.X麻烦多了· (2014-06-12 19:50) 

是的,qt5.0交叉编译起来 是要比qt4.8.x复杂一些,不过qt5.3更加模块化,如果不想编译某些模块直接就可以在源代码顶层目录删除就可以,configure时会自动识别,这点比较方便,另外qt5.3支持兰芽,nfc,这点用起来很方便
离线zjmmlab

只看该作者 30楼 发表于: 2014-06-13
收藏一下,过一阵要用.谢谢分享
离线ppa2001

只看该作者 31楼 发表于: 2014-06-16
在请教大神一个问题,我编译了QT4.8.5 的qmake 等库没有配置OPNEGL,
但我后面的程序,想用opengl的话,是不是还的重新编译下?还是可以自己加入opengl的库文件就可以了?
离线jnny_cn

只看该作者 32楼 发表于: 2014-06-16
回 ppa2001 的帖子
ppa2001:在请教大神一个问题,我编译了QT4.8.5 的qmake 等库没有配置OPNEGL,
但我后面的程序,想用opengl的话,是不是还的重新编译下?还是可以自己加入opengl的库文件就可以了? (2014-06-16 11:57) 

最好重新编译

应为要生成QtOpenGL4.dll或Qt5OpenGL.dll

并且如果你要在板子上运行的话,你的板子的文件系统也要支持opengl,否则极有可能督编译不过
离线ppa2001

只看该作者 33楼 发表于: 2014-06-16
回 jnny_cn 的帖子
jnny_cn:最好重新编译
应为要生成QtOpenGL4.dll或Qt5OpenGL.dll
....... (2014-06-16 12:24) 

谢谢大神了·好复杂。
对了,我看了下串口的资料,网上说Linux下只支持Polling模式,要不断的查询有没有接收到数据,
那不是很容易丢数据?
离线jnny_cn

只看该作者 34楼 发表于: 2014-06-16
回 ppa2001 的帖子
ppa2001:谢谢大神了·好复杂。
对了,我看了下串口的资料,网上说Linux下只支持Polling模式,要不断的查询有没有接收到数据,
那不是很容易丢数据?
 (2014-06-16 22:11) 

串口最好开单独的线程接收,这个不影响主线程界面响应
实际串口属于低速外设,
处理得当,不会丢数据,
我实际连续接收几万个数据,没有出现过错误
离线ppa2001

只看该作者 35楼 发表于: 2014-06-17
回 jnny_cn 的帖子
jnny_cn:串口最好开单独的线程接收,这个不影响主线程界面响应
实际串口属于低速外设,
处理得当,不会丢数据,
我实际连续接收几万个数据,没有出现过错误 (2014-06-16 23:06) 

在次感谢,那LINUXI下串口只能用查询了?有什么好的类可以推荐码?
离线jnny_cn

只看该作者 36楼 发表于: 2014-06-17
个人推荐qextserialport-1.2rc,它的内部已经给你处理好了线程模式的发送接收,很好用

内容来自[短消息]
离线jnny_cn

只看该作者 37楼 发表于: 2014-06-17
个人推荐qextserialport-1.2rc,它的内部已经给你处理好了线程模式的发送接收,很好用

qextserialport-1.2rc.zip (241 K) 下载次数:13
离线ppa2001

只看该作者 38楼 发表于: 2014-06-17
回 jnny_cn 的帖子
jnny_cn:个人推荐qextserialport-1.2rc,它的内部已经给你处理好了线程模式的发送接收,很好用
[图片]
 (2014-06-17 09:53) 

谢谢了·我去试试·
离线joeycheng

只看该作者 39楼 发表于: 2014-06-17
为啥总是出现这个错误:QXcbConnection: Could not connect to display??
X也启动了,matchbox也启动,gtk-demo也能正常运行,就是自己的程序总是出现上面那个错误。。。
我用的是am3358,也支持SGX硬件加速的啊,查不到原因,为啥啊,大牛。。。。求懂
快速回复
限100 字节
 
上一个 下一个