虚拟机QT编译环境配置

来源:互联网 发布:计算机专业除了编程 编辑:程序博客网 时间:2024/05/22 22:40

虚拟机版本:VMare8.0.0

虚拟机系统:Ubuntu10.0

QT源码版本:qt-embedded-free-3.1.0

 

花了些时间把虚拟机上的QT编译环境弄好了,在现在总结一下配置过程以及遇到的问题。我的配置环境以及QT版本号如上所述。

起初的时候我用工作的虚拟机环境配置,这个环境是之前同事给我的,里面怎么配置的我也不太清楚,工作环境已经安装了交叉编译工具arm-none-linux-gnueabi,我平时工作的时候都是用这个做交叉编译,程序编译好以后,直接放到嵌入式板子上运行就OK了。在这个环境上编译QT源码的时候总是出错,错误如下:

g++: error trying to exec 'cc1plus': execvp: No such file or directory

用这些错误信息在网上找解决方法的时候,一般都是说原因是g++没有安装或者g++版本与gcc版本不一致,按照网上的说法,我重新安装g++,首先安装软件包build-essential,安装命令为: apt-get install build-essential,然后再安装g++,在安装g++前,查看一个下gcc版本,命令为:gcc -v,得到gcc版本为4.3,于是我安装与之相应的g++版本,命令为:apt-get install g++-4.3,安装完成后,再编译源QT代码,仍然出现同样的错误。我在这个问题上折腾了好久,但是仍然没有解决,当时实在没有办法了,于是决定自己重新装一个系统,自己在系统上配置环境。(ps:知道原因的大神不妨说下解决方法,我等是菜鸟,感谢先!)

 

决定自己重新装一个系统以后我就立刻行动起来,系统装好以后,按照网上的方法配置环境。

一、建立arm交叉编译工具链(这个过程是完全按照网上来,也没有出现什么问题)

在安装QT/E之前,应确保arm-linux交叉编译工具链已经建立,如果还没有可以参考以下步骤建立。

1、下载交叉编译工具cross-2.95.3.tar.bz2(或其他版本如:cross-3.4.4.tar.bz2),这是已经制作好的arm交叉编译工具链,只需解压及建交环境变量即可使用。

2、把文件cross-2.95.3.tar.bz2拷贝到一个文件夹,这里我用:/usr/local/arm这个目录。 注意后面建立环境变量时要与之对应。

3、解压 tar   -xjvf    cross-2.95.3.tar.bz2

4、建立环境变量 export    PATH=/usr/local/arm/2.95.3/bin:$PATH

或者也可以写进文件 ~/.bashrc中,这样就不用每次开机都export啦。

vim    ~/.bashrc

在后面加上 export    PATH=/usr/local/arm/2.95.3/bin:$PATH

到此arm-linux交叉编译工具链就已经建好了。

 

二、编译QT

1我是在http://download.qt-project.org/archive/qt/上下载的QT源文件,版本如上,因为网上建议用这个版本,具体如何好,我个人也不太清楚。这个网站还有其他各种版本的QT源文件。

3、把文件qt-embedded-free-3.1.0.tar.bz2 拷贝到一个文件夹,这里我用:/usr/local/arm这个目录。 注意后面建立环境变量时要与之对应。

4、解tar-xzvf qt-embedded-free-3.1.0.tar.bz2 

把解压后的文件夹qt-embedded-free-3.1.0改为qte。(可以不改,这里是为了方便,注意后面建立环境变量时要与之对应)   mv     qt-embedded-free-3.1.0     qte

5、建立环境变量

vim     ~/.bashrc

在后面加上

export QTDIR=/usr/local/arm/qte
export QTEDIR=$QTDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

请重新登陆,以使得环境变量生效)

6、配置QT

进入QT/E目录:     cd    $QTDIR

输入:   ./configure  -embedded  arm   -thread  -no-cups -qvfb -depths 4,8,16,32

上述选项: -embedded  arm 指目标平台为arm; -thread 表示支持qt线程,本人开发当中用到; -qvfb 表示支持虚拟缓冲帧工具qvfb-depths 4,8,16,32 表示支持481632 位的显示颜色深度。还有很多选项就不一一列举,请查看 ./configure  -help

7、编译

make sub-src    // 指定按精简方式编译开发包,也就是说有些Qt 类未被编译。

8、测试

至此编译工作完成,最后测试一下是否能正常使用。我们可以用QT自带的例子来测试,如:

cd  $QTDIR/examples/aclock      //或你自己新建一个QT工程也行

make clean                              //把原来的清掉

rm    *.pro      Makefile                       //删掉,重新建立工程文件

qmake   -project

qmake   -spec  $QTDIR/mkspecs/qws/linux-arm-g++   -o  Makefile           

-spec指定目标板的配置文件,这里我做的是linux arm平台,注意在这里,$QTDIR/mkspecs/qws/linux-arm-g++ 它不是编译器,是一个配置文件,而编译时用的编译器是我们在第一步建立的arm交叉编译工具链里面的编译器。 

make                      

成功以后就表示QT/E环境已经成功建立。


我在第六步编译的时候遇到了个问题,$QTDIR/include/qvaluestack.h 这个文件的出错,在网上搜了下,在qt-2.3.7/src/tools/qvaluestack.h的第57行,将remove( this->fromLast() );改为this->remove( this->fromLast () );再重新编译就好了。

 

至此我的虚拟机QT编译环境已经配好,在配置过程中遇到的问题已经总结好,问题的解决方法,都是在网上找到,再次谢谢各位大神分享自己的知识与心得,谢谢!。下一步就是把开发板上的QT环境配好,最后利用环境编写自己的代码。在下一步工作中肯定会遇到很多问题,到时候再请教网上的各位大神。

 

文章来源:

http://blog.chinaunix.net/uid-20697149-id-1891500.html

http://www.cnblogs.com/dolphi/archive/2012/08/13/2636474.html

 

 

 

 

 

 

 

0 0
原创粉丝点击