Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4462541
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: 嵌入式

2011-04-12 17:45:06

参考资料:
        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 权限下,执行
  1. ywx@yuweixian:~/yu/qt/hello_cn$ qvfb &
  2. [1] 4011
  3. ywx@yuweixian:~/yu/qt/hello_cn$ Qt for Embedded Linux data directory is not owned by user 1000h
  4. ^C
  5. [1]+ 已放弃 qvfb
qvfb 不能正常找到,

在qt creator 下执行运行 debug 也出现同样的问题

  1. 运行 qt 生成的二进制文件时,出现的:

  2. Starting /home/ywx/yu/test-qt/test-qt/test-qt...
  3. Qt for Embedded Linux data directory is not owned by user 1000
  4. The program has unexpectedly finished.
  5. /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

直 接运行 下面代码 就可以了

 
  1. 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下.

报错:
自己编译过程中遇到的错误提示为
  1. Basic XLib functionality test
  2. You might need to modify the include and library search paths by editing
  3. 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

**********************结束**********************************

测试
  1. root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86# ls
  2. bin doc include mkspecs plugins setenv.sh
  3. demos examples lib phrasebooks q3porting.xml
  4. root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86# source setenv.sh   ######
  5. root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86# ls
  6. bin doc include mkspecs plugins setenv.sh
  7. demos examples lib phrasebooks q3porting.xml
  8. root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86# cd demos/chip/
  9. root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/chip# ls
  10. chip fileprint.png qt4logo.png zoomin.png
  11. chip.cpp images.qrc rotateleft.png zoomout.png
  12. chip.debug main.cpp rotateright.png
  13. chip.h mainwindow.cpp view.cpp
  14. chip.pro mainwindow.h view.h
  15. root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/chip# qvfb &
  16. [1] 2375
  17. root@yuweixian:/usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/chip# ./chip -qws
  18. Connected to VFB server :0: 240 x 320 x 32 85x113mm (72x72dpi)






阅读(2196) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~