在ubuntu12.04上用qvfb运行QtE程序

来源:互联网 发布:软件杂志社官网 编辑:程序博客网 时间:2024/05/18 00:33

环境 :ubuntu12.04

Qt库版本:4.8.4

交叉编译器:arm-linux-gcc 4.4.3



在前面的博客中,已经把qt-everwhere-opensource-4.8.4编译成arm版,并且把库移植到开发板,开发板已经能够运行PC的qt开发的程序。  现在希望利用X86版嵌入式库编译成功的程序能够在PC上用qvfb虚拟帧缓冲运行。


1、编译pc版。把qt-everywhere-opensource-src-4.8.4.tar.gz解压到建立的pc文件夹,进入pc,

    #./configure
    #make && make install

   如果在gmake的时候出现:
    /usr/include/X11/extensions/XTest.h:50:35:
错误:X11/extensions/XInput.h:没有该文件或目录
    Infile included fromx11keyfaker.cpp:47:
    /usr/include/X11/extensions/XTest.h:104:
错误:‘XDevice’未声明
    /usr/include/X11/extensions/XTest.h:114:
错误:‘XDevice’未声明
    /usr/include/X11/extensions/XTest.h:124:
错误:‘XDevice’未声明
    /usr/include/X11/extensions/XTest.h:133:
错误:‘XDevice’未声明
    make:*** [.obj/release-shared/x11keyfaker.o]
错误1

   解决方法:sudo apt-get install xorg-dev


2、编译嵌入式x86版。把qt-everwhere-opensource-4.8.4解压到建立的x86文件夹,进入目录x86

    #./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
    #make && make install
              // 安装时间会很长,每次编译这类东西我都是睡觉时编译,早上起来就OK了。

  

3、编译安装PC版中的qvfb。

      进入第一步pc/toos/qvfb   ,执行#make

    如果make的时候出现了:
     x11keyfaker.cpp:48:34:致命错误:X11/extensions/XTest.h:没有那个文件或目录

    make: ***[.obj/release-shared/x11keyfaker.o]错误1

    解决方法: sudoapt-get installxorg-dev

     完成后,pc/bin目录下的qvfb文件复制到/usr/local/Trolltech/QtEmbedded-4.8.4/bin目录。


4、x86下的编译与调试。

 

   打开一个qt工程,如books, Qt-creator界面左侧点击Projects图标,打开工程设置界面。

  在EditProject Settings for Project books——BuildSettings——EditBuild Configuration:单击Add,在下拉列表   中选择UsingQt  Version “QtEmbedded4.8.4-x86”弹出对话框单击Ok按钮。

  在RunSettings-Arguments:文本框中添加参数“-qws”

  设置完毕,点击Edit图标,回到编辑界面。

编译:在Build菜单下,先CleanProject “books”,然后BuildProject “books”,在右下角CompileOutput窗口能看到编译信息。

运行:
启动终端,#/usr/local/Trolltech/QtEmbedded-4.6.3/bin/qvfb -width 800 -height 480&,启动Qvfb

  在启动qvfb后我这儿提示QLock::QLock: Cannot get semaphore /tmp/qtembedded-root/QtEmbedded-0 'd' (2, 没有那个文件或目录),还没有找到原因,不过能正常使用,可能程序中用到信号量后会出问题,先暂时不管它.

回到Qt-creatorBuild——Run,运行程序。 现在就可以看到效果了!


调试:Debug——StartDebugging——StartDebugging,即可启动调试(请保证books路径中没有中文名,即不要把books工程放在了某个含有中文字符的文件夹下,不然无法启动调试)。

此时感觉如果前面编译选项EditProject Settings for Project books——BuildSettings——EditBuildConfiguration:选择Debug项,则调试启动速度比Release时的要快很多。

   


原创粉丝点击