1. 程式人生 > >Ubuntu14.04下嵌入式Qt環境搭建之安裝qvfb

Ubuntu14.04下嵌入式Qt環境搭建之安裝qvfb

Ubuntu的下交叉編譯QT環境時,會涉及到qvfb程式的編譯

主要是當解壓完QT後,進入QT /工具/ qvfb的資料夾後編譯

 

編譯後執行操作如下:

#使

遇到問題1:

x11keyfaker.cpp:48:34:致命錯誤:X11 / extensions / XTest.h:沒有那個檔案或目錄

編譯中斷.make:*** [.obj / release-shared / x11keyfaker.o]錯誤1

解決方法

    sudo apt-get install xorg-dev 

 

遇到問題2:

未定義的引用`DeviceSkin :: read(QString const&,DeviceSkinParameters :: ReadMode,QString *)

總之是不能識別一切以DeviceSkin類相關的函式

解決辦法

    去qt / tools / shared / deviceskin資料夾下把deviceskin.h和deviceskin.cpp檔案拷貝到qvfb資料夾下,重新編譯即可(一定要重新編譯)  

    編譯語句為:/ usr / local / qt / bin / qmake -project

                          在/ usr /本地/ QT /斌/ QMAKE

 

 

遇到問題3:

未定義的符號'XKeycodeToKeysym'的引用

其中XKeycodeToKeysym可為任何以X開頭的函式名稱

解決辦法

    在編譯出來的makefile的LIBS中新增-lXtst -X11

    如果無法識別Xtst庫,執行sudo apt-get install libxtst-dev

 

遇到問題4:

解決辦法:

去的/ usr /本地/ QT / SRC / GUI /嵌入下拷貝qwslock.cpp和qwslock_p.h到QVFB資料夾下

老規矩,記得重新編譯

 

遇到問題5:

。qanimationwriter.cpp :(文字+ 0x138):對'png_create_write_struct'未定義的引用
qanimationwriter.cpp :(文字+ 0x143):對'png_create_info_struct'未定義的引用
qanimationwriter.cpp :(文字+ 0x159):對'png_set_compression_level'未定義的引用
qanimationwriter.cpp :(。text + 0x178):對'png_set_write_fn'未定義的引用
.obj / release-shared / qanimationwriter.o:在函式'QAnimationWriterMNG :: write(png_struct_def *,unsigned char *,unsigned int)'中:
qanimationwriter.cpp :(。text._ZN19QAnimationWriterMNG5writeEP14png_struct_defPhj [_ZN19QAnimationWriterMNG5writeEP14png_struct_defPhj] + 0xb):對'png_get_io_ptr'未定義的引用
.obj / release-shared / qanimationwriter.o:在函式'QAnimationWriterMNG :: setImage (QImage const&)'中:
qanimationwriter.cpp :(。text._ZN19QAnimationWriterMNG8setImageERK6QImage [_ZN19QAnimationWriterMNG8setImageERK6QImage] + 0xb0):對'png_write_chunk'未定義的引用
.obj / release-shared / qanimationwriter.o:在函式'QAnimationWriterMNG :: composeImage(QImage const&,QPoint const&)'中:
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint [_ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint] + 0x5c):對'png_write_chunk'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint [_ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint] + 0x76):對'png_set_sig_bytes'未定義的引用
。qanimationwriter.cpp :( text._ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint [_ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint] + 0xd8):對'png_set_IHDR'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint [_ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint] + 0xea):對'png_write_info'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint [_ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint] + 0x105):對'png_set_bgr'未定義的引用
qanimationwriter。 。CPP :( text._ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint [_ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint] + 0x164):對'png_write_image'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint [_ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint] + 0x182):對'png_write_end'未定義的引用
。qanimationwriter.cpp :( text._ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint [_ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint] + 0x194):對'png_destroy_write_struct'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint [_ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint] + 0x1b8):對'png_create_write_struct'未定義的引用
qanimationwriter。 。CPP :( text._ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint [_ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint] + 0x1c3):對'png_create_info_struct'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint [_ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint] + 0x1d9):對'png_set_compression_level'未定義的引用
。qanimationwriter.cpp :( text._ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint [_ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint] + 0x1f8):對'png_set_write_fn'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint [_ZN19QAnimationWriterMNG12composeImageERK6QImageRK6QPoint] + 0x22f):對'png_set_filler'未定義的引用
的obj /release-shared/qanimationwriter.o:with函式'QAnimationWriterMNG ::〜QAnimationWriterMNG()'中:
qanimationwriter.cpp :(。text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] +0x8e):對'png_write_chunk'未定義的引用
qanimationwriter.cpp: (.text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] + 0xa8):對'png_set_sig_bytes'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] + 0x10e):對'png_set_IHDR'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] +量0x120):對'png_write_info'未定義的引用
qanimationwriter。 。CPP :( text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] + 0x13b):對'png_set_bgr'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] +量0x1A0):對'png_write_image'未定義的引用
qanimationwriter.cpp: (.text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] + 0x1c1):對'png_write_end'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] + 0x1d3):對'png_destroy_write_struct'未定義的引用
。qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] + 0x1f7):對'png_create_write_struct'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] + 0x202):對'png_create_info_struct'未定義的引用
qanimationwriter。 。CPP :( text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] + 0x218):對'png_set_compression_level'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] + 0x237):對'png_set_write_fn'未定義的引用
qanimationwriter.cpp: (.text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] + 0x262):對'png_write_chunk'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] + 0x274):對'png_destroy_write_struct'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] + 0x32f):對'png_write_chunk'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD2Ev [_ZN19QAnimationWriterMNGD5Ev] + 0x34f):對'png_set_filler'未定義的引用
的obj /release-shared/qanimationwriter.o:with函式'QAnimationWriterMNG ::〜QAnimationWriterMNG()'中:
qanimationwriter.cpp :(。text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0x8e):對'png_write_chunk'未定義的引用
qanimationwriter.cpp: (.text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0xa8):對'png_set_sig_bytes'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0x10e):對'png_set_IHDR'未定義的引用
。qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] +量0x120):對'png_write_info'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0x13b):對'png_set_bgr'未定義的引用
qanimationwriter。 。CPP :( text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] +量0x1A0):對'png_write_image'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0x1c1):對'png_write_end'未定義的引用
qanimationwriter.cpp: (.text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0x1d3):對'png_destroy_write_struct'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0x1f7):對'png_create_write_struct'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0x202):對'png_create_info_struct'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0x218):對'png_set_compression_level'未定義的引用
qanimationwriter。 。CPP :( text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0x237):對'png_set_write_fn'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0x262):對'png_write_chunk'未定義的引用
qanimationwriter.cpp: (.text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0x274):對'png_destroy_write_struct'未定義的引用
qanimationwriter.cpp :( text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0x337):對'png_write_chunk'未定義的引用
qanimationwriter.cpp :(。text._ZN19QAnimationWriterMNGD0Ev [_ZN19QAnimationWriterMNGD0Ev] + 0x357):對'png_set_filler'未定義的引用
collect2:錯誤:ld返回1退出狀態
make:*** [qvfb]錯誤1

 

之所以粘這麼多,是因為這龜孫問題卡了我一天時間

解決辦法:

在Makefile的LIBS中新增-L / lib / i386-linux-gnu -lpng

 

西天取經的路終於成功的走完了第一步

最後把編譯出來的QVFB檔案拷貝到/usr/local/Trolltech/QtEmbedded-4.8.5/bin目錄即可

 

LIBS = $(SUBLIBS)-L / usr / local / qt6-pc / lib -L ​​/ usr / X11R6 / lib -lpng -lz -lXtst -lQtGui -L / usr / local / qt6-pc / lib -L ​​/ usr / X11R6 / lib -lQtCore -lpthread -lXrender -lfontconfig -lfreetype -lXext -lX11 -lm(Makefile中的LIBS)