参考资料:
http://hi.baidu.com/lq1836/blog/item/cc8e25ecd58c184379f0550f.html
http://blog.csdn.net/lhembed/archive/2010/05/20/5610169.aspx http://blog.sina.com.cn/s/blog_4c8287230100j73h.html http://blogold.chinaunix.net/u4/120016/showart_2472408.html http://www.cnblogs.com/cnnbboy/archive/2009/06/06/1497780.html说明:
交叉编译器 arm-linux-gcc-4.5.1
主机 :ubuntu10.10
主机gcc : gcc-4.4.5
这次编译搭建都是在 root 权限下执行的,但是root权限导致了 补充注意 的问题:
所以 下次 试试在 用户模式下搭建环境看看,这次就将就的用一下吧**********************************
补充注意:
在完成环境搭建后,使用qmake -project
qmake
make
当我在用户模式下,不是在root 权限下,执行
- ywx@yuweixian:~/yu/qt/hello_cn$ qvfb &
-
[1] 4011
-
ywx@yuweixian:~/yu/qt/hello_cn$ Qt for Embedded Linux data directory is not owned by user 1000h
-
^C
-
[1]+ 已放弃 qvfb
qvfb 不能正常找到,
在qt creator 下执行运行 debug 也出现同样的问题
- 运行 qt 生成的二进制文件时,出现的:
-
-
Starting /home/ywx/yu/test-qt/test-qt/test-qt...
-
Qt for Embedded Linux data directory is not owned by user 1000
-
The program has unexpectedly finished.
-
/home/ywx/yu/test-qt/test-qt/test-qt exited with code 0
所以注意,一定要 使用用户模式 搭建QT环境了。 ***********************************
1.下载以下安装包:
1.qt-embedded-linux-opensource-src-4.5.3.tar.gz
官网下载地址:
2 qt-x11-opensource-src-4.5.3.tar.gz
官网下载地址:
2.
2.编译及安装qt-x11-opensource-src-4.5.3
qt-x11版本可以产生Qt开发工具,如designer等等,最重要的是可以得到qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。qt-embedded版本就是专门用于嵌入式方面的版本。
tar xjvf qt-x11-opensource-src-4.5.3.tar.bz2
cd qt-x11-opensource-src-4.5.3
./configure
make: g++:命令未找到
make: *** [outlook.o] 错误 127
出现错误是因为没有安装g++编译器,运行以下命令来安装:
sudo apt-get install g++
应该就好了,如果还没好,再安装这个:
sudo apt-get install pentium-builder
直
接运行 下面代码 就可以了
- sudo apt-get install libx11-dev libfreetype6-dev libavahi-gobject-dev libSM-dev libXrender-dev libfontconfig-dev libXext-dev
make
sudo make install
历经漫长的编译过程,约一个半小时,默认安装在/usr/local/Trolltech/Qt-4.5.3下.编译完成后源程序不要删除,还有用。
3.编译及安装qt-embedded-linux-opensource-src-4.5.3
在用户目录下建立一个src目录,用于存放编译源文件qt-embedded-linux-opensource-src-
4.5.3.tar.bz2。将其解压得到qt-embedded-linux-opensource-src-4.5.3,重命名为qt-
embedded-linux-opensource-src-4.5.3-x86.
再次解压qt-embedded-linux-opensource-src-4.5.3.tar.bz2,并重命令为qt-embedded-
linux-opensource-src-4.5.3-arm.为什么有两个复制呢?我们可以从他们的名字上就不难看出前者是适合x架构的,后者适合
arm架构的,如果有开发板的话,可以只编译qt-embedded版本成arm架构的就可以了,但是很多时候用qvfb的话,开发会方便很多,所以多编
译一个x86架构的也不错。
mkdir ~/src
mv qt-embedded-linux-opensource-src-4.5.3.tar.bz2 ~/src
tar xjvf qt-embedded-linux-opensource-src-4.5.3.tar.bz2
mv qt-embedded-linux-opensource-src-4.5.3 qt-embedded-linux-opensource-src-4.5.3-x86
tar xjvf qt-embedded-linux-opensource-src-4.5.3.tar.bz2
mv qt-embedded-linux-opensource-src-4.5.3 qt-embedded-linux-opensource-src-4.5.3-arm
cd qt-embedded-linux-opensource-src-4.5.3-x86
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.3-x86 -embedded x86 -qvfb
make
make install
-------OK!qt-embedded-x86被安装在/usr/local/Trolltech/QtEmbedded-4.5.3-x86下.
cd qt-embedded-linux-opensource-src-4.5.3-arm
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.3-arm -embedded arm
在这里编译器报错:
The
target system byte order could not be detected!Turn on verbose
messaging (-v) to see the final report.You can use the -little-endian
or -big-endian switch to
./configure to continue.
这时我选择了小端编译的方式。 -little-endian编译通过。
#./configure -little-endian
make
make install
-------OK!qt-embedded-arm被安装在/usr/local/Trolltech/QtEmbedded-4.5.3-arm下.
报错:
自己编译过程中遇到的错误提示为
- Basic XLib functionality test
-
You might need to modify the include and library search paths by editing
-
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11
那是因为
ubuntu没装有libxtst-dev
解决办法:
# sudo apt-get install libxtst-dev (注释
所以为了避免发生这个错误 最好在安装qt和 qtembeded 前 不管安装了还是没有安装这个包 都先执行该命令 反正要是已经安装了
libxtst-dev 系统也不会重新安装 libxtst-dev).
**********************************************************************************
设置环境变量
终端下 输入:vim ~/.bashrc 这里等于 vim /root/.bashrc
在打开的配置文件最后直接添加下面代码:
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.3-x86
export PATH=/usr/local/Trolltech/QtEmbedded-4.5.3-x86/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.3-x86/lib:$LD_LIBRARY_PATH
保存配置后 重启系统 (不重启这些变量没有生效,下面使用到这里的变量就无效了 如${QTEDIR})
************************************************************************************
4.至此我们已经安装好了qt-x11版,即在PC机上运行的QT,qt-embedded-x86版(x86体系的嵌入式板子上运行的QT)和qt-embedded-arm(arm板子上运行的QT).
下一步:设置环境变量
(1)qt-x11:
vim setenv.sh
添加如下内容:
PATH=/usr/local/Trolltech/Qt-4.5.3/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.5.3/lib:$LD_LIBRARY_PATH
保存退出.移到/usr/local/Trolltech/Qt-4.5.3中。
(2)QtEmbedded-4.5.3-x86:
vim setenv.sh
添加如下内容:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.3-x86
PATH=/usr/local/Trolltech/QtEmbedded-4.5.3-x86/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.3-x86/lib:$LD_LIBRARY_PATH
保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.3-x86中。
(3)QtEmbedded-4.5.3-arm
vmi setenv.sh
添加如下内容:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.3-arm
PATH=/usr/local/Trolltech/QtEmbedded-4.5.3-arm/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.3-arm/lib:$LD_LIBRARY_PATH
保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.3-arm中。
我们在运行的时候分别运行对应的脚本即可,比如我们要用qt-x11:
cd /usr/local/Trolltech/Qt-4.5.3
source setenv.sh
然后就可以用qmake designer等工具了.
5.做到这一步还有qvfb没有编译,到qt-x11-opensource-src-4.5.3中重新编译qvfb即可
cd qt-x11-opensource-src-4.5.3
cd /tools/qvfb
make --会在qt-x11-opensource-src-4.5.3/bin下生成qvfb,我们将它copy至/usr/local/Trolltech/QtEmbedded-4.5.3-x86/bin下
cp ../..bin/qvfb /usr/local/Trolltech/QtEmbedded-4.5.3-x86/bin
**********************结束**********************************
测试
- root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86# ls
-
bin doc include mkspecs plugins setenv.sh
-
demos examples lib phrasebooks q3porting.xml
-
root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86# source setenv.sh ######
-
root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86# ls
-
bin doc include mkspecs plugins setenv.sh
-
demos examples lib phrasebooks q3porting.xml
-
root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86# cd demos/chip/
-
root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/chip# ls
-
chip fileprint.png qt4logo.png zoomin.png
-
chip.cpp images.qrc rotateleft.png zoomout.png
-
chip.debug main.cpp rotateright.png
-
chip.h mainwindow.cpp view.cpp
-
chip.pro mainwindow.h view.h
-
root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/chip# qvfb &
-
[1] 2375
-
root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/chip# ./chip -qws
-
Connected to VFB server :0: 240 x 320 x 32 85x113mm (72x72dpi)