红联Linux门户
Linux帮助

Ubuntu建立QT/Creator/Embedded环境

发布时间:2015-04-14 10:53:53来源:linux网站作者:lastnightcode

参考网络上的一些方法,但是几个关键的地方发现都不太对,后来自己摸索出来的。首先我犯了一个大错误,系统空间太小,以至于我最后都没有空间解压了,最痛苦的是后面我们将要说道的编译,每编译一次就要花掉将近五个小时(我是VM装的Ubuntu)。所以推荐VM安装的时候,把默认的8G改成16G,这样仅仅是勉强够,推荐大小是20G。

开始吧,现从网络上都有的这几步开始:


1. 下载源码包

qt-x11-opensource-src-4.5.0.tar.bz2

qt-embedded-linux-opensource-src-4.5.0.tar.bz2

下载地址:ftp://ftp.qtsoftware.com/qt/source/

FTP直接双击,ubuntu 会自动下载,几百兆的样子,下了N久。


2.编译及安装qt-x11-opensource-src-4.5.0

qt-x11版本可以产生Qt开发工具,如designer等等,最重要的是可以得到qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。qt-embedded版本就是专门用于嵌入式方面的版本。

命令:

tar xjvf qt-x11-opensource-src-4.5.0.tar.bz2

cd qt-x11-opensource-src-4.5.0

./configure

make

make install

历经漫长的编译过程,我这里用了5个小时,默认安装在/usr/local/Trolltech/Qt-4.5.0下.编译完成后源程序不要删除,还有用。这里一定要注意,千万不要因为空间不够了而删掉编译好的源程序,因为我们下面还要编译qvfb,要用到这些编译好的源代码。

到此时 我们QT4.5已经安装好了。此时 诺基亚已经推出了QT Creator,这个装一些也是很不错的,在软件包管理器里面直接搜索然后标记安装就可以了,速度是很慢的,一定要形容的话龟速,所以大家一定要有耐心。如果你不想装QT Creator IDE的话,这一步可以略过。


3.编译及安装qt-embedded-linux-opensource-src-4.5.0

在用户目录下建立一个src目录,用于存放编译源文件qt-embedded-linux-opensource-src-4.5.0.tar.bz2。将其解压得到qt-embedded-linux-opensource-src-4.5.0,重命名为qt-embedded-linux-opensource-src-4.5.0-x86.再次解压qt-embedded-linux-opensource-src-4.5.0.tar.bz2,并重命令为qt-embedded-linux-opensource-src-4.5.0-arm.为什么有两个复制呢?我们可以从他们的名字上就不难看出前者是适合x架构的,后者适合arm架构的,如果有开发板的话,可以只编译qt-embedded版本成arm架构的就可以了,但是很多时候用qvfb的话,开发会方便很多,所以多编译一个x86架构的也不错。这个时候一定要注意你的系统空间是否够大,因为一旦编译的话,是很占空间的,由上面的操作我们是可以看得出来的。下面的命令 我会在后面注释。符号为//

mkdir ~/src  //建立一个src目录,当然你也可以通过桌面程序建立,也可以通过本代码建立

mv qt-embedded-linux-opensource-src-4.5.0.tar.bz2 ~/src  //移动文件到src目录

tar xjvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2//解压

mv qt-embedded-linux-opensource-src-4.5.0 qt-embedded-linux-opensource-src-4.5.0-x86 //重命名

tar xjvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2//解压

mv qt-embedded-linux-opensource-src-4.5.0 qt-embedded-linux-opensource-src-4.5.0-arm//重命名

cd qt-embedded-linux-opensource-src-4.5.0-x86

./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-x86 -embedded x86 -qvfb//执行configure文件

make//编译

make install//安装

-------OK!qt-embedded-x86被安装在/usr/local/Trolltech/QtEmbedded-4.5.0-x86下.

cd qt-embedded-linux-opensource-src-4.5.0-arm

./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-arm -embedded arm

make

make install

-------OK!qt-embedded-arm被安装在/usr/local/Trolltech/QtEmbedded-4.5.0-arm下.

假如此时空间不够,那么很抱歉!


4.至此我们已经安装好了qt-x11版,即在PC机上运行的QT,qt-embedded-x86版(x86体系的嵌入式板子上运行的QT)和qt-embedded-arm(arm板子上运行的QT).下一步:设置环境变量

(1)qt-x11:

此处我刚开始没有理解,后来想明白的,这里是想建立一个环境脚本,但是它不是我们平常意义的环境脚本,因为他是通过source运行的,这里我们可以通过桌面程序,建立一个文本,然后修改名字为setenv.sh,复制蓝色内容进去,比如

PATH=/usr/local/Trolltech/Qt-4.5.0/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.5.0/lib:$LD_LIBRARY_PATH

保存退出,然后移动到/usr/local/Trolltech/Qt-4.5.0,这个时候假如你不是root权限,是不能移动的,所以要用   [sudo cp 源目录 目标目录] 来移动。

vi setenv.sh

添加如下内容:

PATH=/usr/local/Trolltech/Qt-4.5.0/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.5.0/lib:$LD_LIBRARY_PATH

保存退出.移到/usr/local/Trolltech/Qt-4.5.0中。

(2)qt-embedded-x86:

vi setenv.sh

添加如下内容:

QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-x86
PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/lib:$LD_LIBRARY_PATH

保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.0-x86中。

(3)qt-embedded-arm:

vi setenv.sh

添加如下内容:

QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-arm
PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib:$LD_LIBRARY_PATH

保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.0-arm中。

我们在运行的时候分别运行对应的脚本即可,比如我们要用qt-x11:

cd /usr/local/Trolltech/Qt-4.5.0

source setenv.sh

然后就可以用qmake designer等工具了.

进行到这一步了,相信大家都经历了一天或者两天的时间了,编译化的时间太久了。

不够我们离成功也不远了。


5.做到这一步还有qvfb没有编译,到qt-x11-opensource-src-4.5.0中重新编译qvfb即可

cd qt-x11-opensource-src-4.5.0

cd /tools/qvfb

make --会在qt-x11-opensource-src-4.5.0/bin下生成qvfb,我们将它copy至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin下

cp ../..bin/qvfb /usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin

其实呢,这一步是经常有问题的,因为Ubuntu总会编译失败,报错。

错误1 cannot find -lXtst

解决办法:

方法一 sudo aptitude install libxtst-dev

方法二  sudo ln -s /usr/lib/libXtst.so.6 /usr/lib/libXtst.so

这个时候,其实大家都已经make过了,经过上面的修复后,再一次make会发现提示

没有什么可以做的为 `first'

这个时候,大家会发现在qt-x11-opensource-src-4.5.0/bin下并没有qvfb,我找了半天,发现在/tools/qvfb就是我们需要的。复制过去就可以了 同样 要用sudo 并且 cp此时要变成cp -r 因为是复制文件夹。

这个时候 我发现运行qvfb也是不行的,

比如这个测试


6.做一个测试

cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86

source setenv.sh

cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/books

qvfb -width 640 -height 480 &

./books -qws

是提示找不到gvfb的

但是系统却给了提示,说可以用sudo apt-get install qt3-dev-tools-embedded 修复,同样,龟速。


然后上面的测试就通过了

如图
Ubuntu建立QT/Creator/Embedded环境

这个界面是在qvfb -width 640 -height 480 &后出现的,也就是我们的qvfb

然后在终端里输入

./books -qws

然后如图
Ubuntu建立QT/Creator/Embedded环境

注:以上图片上传到红联Linux系统教程频道中。


至此,我想我们算是完成了所有的工作。到此很辛苦了吧。