成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

編譯 Qt 及 Qvfb 問題出現解決實例

移動開發
本文介紹的是編譯 Qt 及 Qvfb 問題出現解決實例,有關解決方案本文又詳細介紹,先來看內容。

編譯 Qt Qvfb 問題出現解決實例是本文要介紹的內容,有關Qvfb 工程的介紹,先來看內容。

1、/usr/bin/ld: cannot find -lXtst這個問題是庫名稱的問題,一般庫后都有.so.6等數字,而 qt 編譯時,這樣的庫名識別不了,解決辦法是建立一個不帶數字后最的庫名的軟連接
如這個問題:sudo ln -s /usr/lib/libXtst.so.6 /usr/lib/libXtst.so,然后ok

2、找不到XTest.h和XInput.h 要裝兩個包:

  1. XTest.h----libext-dev  
  2. XInput.h ---libxi-dev 

3、編譯qvfb遇到的問題

一定要用qmake

轉載,和他遇到的問題一樣,解決方法就是參照他的

譯結束后我嘗試的步驟如下: (著急的直接看最后幾行!!)

1、進入qvfb源碼目錄:

  1. # cd /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb 

2、執行qmake生成pro工程:

  1. # /home/src/qt-x11-opensource-src-4.4.3/bin/qmake -project 

3、執行qmake生成Makefile

  1. # /home/src/qt-x11-opensource-src-4.4.3/bin/qmake 

4、編譯make

  1. # make 

有錯誤:

  1. g++ -c -pipe -g -O2 -Wall -W -D_REENTRANT -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LI
  2. -DQT_SHARED -I../../mkspecs/linux-g++ -I. -I../../include/QtCore -I../../include/QtCore -I../../include/QtGui 
  3. -I../../include/QtGui -I../../include -I. -I.moc/release-shared -I.uic/release-shared -o .obj/release-shared/qvfb.o qvfb.cpp  
  4. qvfb.cpp:47:24: 錯誤:deviceskin.h:沒有那個文件或目錄  
  5. qvfb.cpp: In member function ‘void QVFb::init(int, int, int, int, int, const QString&)’:  
  6. qvfb.cpp:247: 警告:檢測到調用 delete 運算符時可能出現的問題:  
  7. qvfb.cpp:247: 警告:invalid use of undefined type ‘struct DeviceSkin’  
  8. qvfb.h:53: 警告:forward declaration of ‘struct DeviceSkin’  
  9. qvfb.cpp:247: 附注:析構函數和類特定的 delete 運算符均不會被調用,即使它們在類定義時已經聲明。  
  10. qvfb.cpp:257: 錯誤:‘DeviceSkinParameters’ 在此作用域中尚未聲明  
  11. qvfb.cpp:257: 錯誤:expected `;'' before ‘parameters’  
  12. qvfb.cpp:259: 錯誤:‘parameters’ 在此作用域中尚未聲明  
  13. qvfb.cpp:259: 錯誤:‘DeviceSkinParameters’ is not a class or namespace  
  14. qvfb.cpp:260: 錯誤:invalid use of undefined type ‘struct DeviceSkin’  
  15. qvfb.h:53: 錯誤:forward declaration of ‘struct DeviceSkin’  
  16. qvfb.cpp:261: 錯誤:對 ‘QVFb::connect(DeviceSkin*&, const char [13], QVFb* const, const char [13])’ 的調用沒有匹配的函數  
  17. ../../include/QtCore/../../src/corelib/kernel/qobject.h:197: 附注:備選為: static bool QObject::connect
  18. (const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)  
  19. ../../include/QtCore/../../src/corelib/kernel/qobject.h:302: 附注:         bool QObject::connect
  20. (const QObject*, const char*, const char*, Qt::ConnectionType) const  
  21. qvfb.cpp:277: 錯誤:對 ‘QVFbX11View::QVFbX11View(int&, int&, int&, int&, QVFbAbstractView::Rotation&, DeviceSkin*&)’ 的調用沒有匹配的函數  
  22. qvfbx11view.h:52: 附注:備選為: QVFbX11View::QVFbX11View(int, int, int, int, QVFbAbstractView::Rotation, QWidget*)  
  23. qvfbx11view.h:49: 附注:         QVFbX11View::QVFbX11View(const QVFbX11View&)  
  24. qvfb.cpp:280: 錯誤:對 ‘QVFbView::QVFbView(int&, int&, int&, int&, QVFbAbstractView::Rotation&, DeviceSkin*&)’ 的調用沒有匹配的函數  
  25. qvfbview.h:109: 附注:備選為: QVFbView::QVFbView(int, int, int, int, QVFbAbstractView::Rotation, QWidget*)  
  26. qvfbview.h:106: 附注:         QVFbView::QVFbView(const QVFbView&)  
  27. qvfb.cpp:281: 錯誤:invalid use of undefined type ‘struct DeviceSkin’  
  28. qvfb.h:53: 錯誤:forward declaration of ‘struct DeviceSkin’  
  29. qvfb.cpp:284: 錯誤:對 ‘QVFb::connect(DeviceSkin*&, const char [37], QVFbAbstractView*&, const char [37])’ 的調用沒有匹配的函數  
  30. ../../include/QtCore/../../src/corelib/kernel/qobject.h:197: 附注:備選為: static bool QObject::connect
  31. (const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)  
  32. ../../include/QtCore/../../src/corelib/kernel/qobject.h:302: 附注:         bool QObject::connect
  33. (const QObject*, const char*, const char*, Qt::ConnectionType) const  
  34. qvfb.cpp:285: 錯誤:對 ‘QVFb::connect(DeviceSkin*&, const char [39], QVFbAbstractView*&, const char [39])’ 的調用沒有匹配的函數  
  35. ../../include/QtCore/../../src/corelib/kernel/qobject.h:197: 附注:備選為: static bool QObject::connect
  36. (const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)  
  37. ../../include/QtCore/../../src/corelib/kernel/qobject.h:302: 附注: bool QObject::connect
  38. (const QObject*, const char*, const char*, Qt::ConnectionType) const  
  39. qvfb.cpp:287: 錯誤:invalid use of undefined type ‘struct DeviceSkin’  
  40. qvfb.h:53: 錯誤:forward declaration of ‘struct DeviceSkin’  
  41. qvfb.cpp:289: 錯誤:對 ‘QVFb::setCentralWidget(DeviceSkin*&)’ 的調用沒有匹配的函數  
  42. ../../include/QtGui/../../src/gui/widgets/qmainwindow.h:116: 附注:備選為: void QMainWindow::setCentralWidget(QWidget*)  
  43. qvfb.cpp:302: 錯誤:對 ‘QVFbX11View::QVFbX11View(int, int, int, int&, QVFbAbstractView::Rotation&, DeviceSkin*&)’ 的調用沒有匹配的函數  
  44. qvfbx11view.h:52: 附注:備選為: QVFbX11View::QVFbX11View(int, int, int, int, QVFbAbstractView::Rotation, QWidget*)  
  45. qvfbx11view.h:49: 附注:         QVFbX11View::QVFbX11View(const QVFbX11View&)  
  46. qvfb.cpp:305: 錯誤:對 ‘QVFbView::QVFbView(int, int, int, int&, QVFbAbstractView::Rotation&, DeviceSkin*&)’ 的調用沒有匹配的函數  
  47. qvfbview.h:109: 附注:備選為: QVFbView::QVFbView(int, int, int, int, QVFbAbstractView::Rotation, QWidget*)  
  48. qvfbview.h:106: 附注:         QVFbView::QVFbView(const QVFbView&)  
  49. qvfb.cpp:306: 錯誤:invalid use of undefined type ‘struct DeviceSkin’  
  50. qvfb.h:53: 錯誤:forward declaration of ‘struct DeviceSkin’  
  51. qvfb.cpp: In member function ‘void QVFb::enableCursor(bool)’:  
  52. qvfb.cpp:379: 錯誤:invalid use of undefined type ‘struct DeviceSkin’  
  53. qvfb.h:53: 錯誤:forward declaration of ‘struct DeviceSkin’  
  54. qvfb.cpp: In member function ‘void QVFb::setZoom(double)’:  
  55. qvfb.cpp:453: 錯誤:invalid use of undefined type ‘struct DeviceSkin’  
  56. qvfb.h:53: 錯誤:forward declaration of ‘struct DeviceSkin’  
  57. qvfb.cpp: In member function ‘void QVFb::skinConfigChosen(int)’:  
  58. qvfb.cpp:771: 錯誤:‘DeviceSkinParameters’ 在此作用域中尚未聲明  
  59. qvfb.cpp:771: 錯誤:expected `;'' before ‘parameters’  
  60. qvfb.cpp:773: 錯誤:‘parameters’ 在此作用域中尚未聲明  
  61. qvfb.cpp:773: 錯誤:‘DeviceSkinParameters’ is not a class or namespace  
  62. make: *** [.obj/release-shared/qvfb.o] 錯誤 1 

差點就放棄了。后來仔細看了一下編譯錯誤。估計主要是差個頭文件:

qvfb.cpp:47:24: 錯誤:deviceskin.h:沒有那個文件或目錄

一般差頭文件會導致cpp文件中很多數據結構和常量沒有定義。找到頭文件deviceskin.h在qt-x11-opensource-src-4.4.3/tools/shared/deviceskin/下面。拷貝到qvfb文件夾下。再編譯:

#p#

編譯沒有問題,連接出錯:

  1. .obj/release-shared/qvfb.o: In function `QVFb::setZoom(double)'':  
  2. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/qvfb.cpp:453: undefined reference to `DeviceSkin::setTransform(QMatrix const&)''  
  3. .obj/release-shared/qvfb.o: In function `QVFb::enableCursor(bool)'':  
  4. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/qvfb.cpp:379: undefined reference to `DeviceSkin::hasCursor() const''  
  5. .obj/release-shared/qvfb.o: In function `QVFb::skinConfigChosen(int)'':  
  6. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/qvfb.cpp:773: undefined reference to `DeviceSkinParameters::read(QString const&, 
  7. DeviceSkinParameters::ReadMode, QString*)''  
  8. .obj/release-shared/qvfb.o: In function `QVFb::init(int, int, int, int, int, QString const&)'':  
  9. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/qvfb.cpp:259: undefined reference to `DeviceSkinParameters::read(QString const&, 
  10. DeviceSkinParameters::ReadMode, QString*)''  
  11. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/qvfb.cpp:260: undefined reference to `DeviceSkin::DeviceSkin(DeviceSkinParameters const&, 
  12. QWidget*)''  
  13. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/qvfb.cpp:281: undefined reference to `DeviceSkin::setView(QWidget*)''  
  14. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/qvfb.cpp:297: undefined reference to `DeviceSkinParameters::hasSecondaryScreen() const''  
  15. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/qvfb.cpp:298: undefined reference to `DeviceSkinParameters::secondaryScreenSize() const''  
  16. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/qvfb.cpp:306: undefined reference to `DeviceSkin::setSecondaryView(QWidget*)''  
  17. .obj/release-shared/x11keyfaker.o: In function `X11KeyFaker::sendKeyEvent(int, bool)'':  
  18. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/x11keyfaker.cpp:475: undefined reference to `XTestFakeKeyEvent''  
  19. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/x11keyfaker.cpp:459: undefined reference to `XTestFakeKeyEvent''  
  20. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/x11keyfaker.cpp:468: undefined reference to `XTestFakeKeyEvent''  
  21. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/x11keyfaker.cpp:454: undefined reference to `XTestFakeKeyEvent''  
  22. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/x11keyfaker.cpp:447: undefined reference to `XTestFakeKeyEvent''  
  23. .obj/release-shared/x11keyfaker.o:/home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/x11keyfaker.cpp:459: 
  24. more undefined references to `XTestFakeKeyEvent'' follow  
  25. .obj/release-shared/x11keyfaker.o: In function `X11KeyFaker::connect()'':  
  26. /home/src/qt-x11-opensource-src-4.4.3/tools/qvfb/x11keyfaker.cpp:544: undefined reference to `XTestQueryExtension''  
  27. collect2: ld 返回 1  
  28. make: *** [qvfb] 錯誤 1 

能看出來有兩個方面的錯誤,一個是DeviceSkinParameters類的函數連接,另一個XTestFakeKeyEvent函數的問題。

我嘗試的解決辦法:

將qt-x11-opensource-src-4.4.3/tools/shared/deviceskin/下deviceskin.h,deviceskin.cpp都拷到qvfb文件夾下面,重新生成pro工程、Makefile文件,再執行make.

這下子DeviceSkinParameters類的函數連接的問題解決了。XTestFakeKeyEvent函數連接的問題依舊。

最后在參考http://www.linuxquestions.org/questions/programming-9/strange-header-problem-228356/

在Makefile文件中LIBS里面添加-lXtst選項。。 再次make。 OK!!

生成的qvfb正確運行。。

總結起來解決辦法是:

1、復制deviceskin.h,deviceskin.cpp到qvfb文件下。

2、在qvfb文件夾下手動生成qvfb工程。

3、修改Makefile 中 LIBS 選項: 添加 -lXtst選項。

編譯。。。

這里要注意,把deviceskin.h,deviceskin.cpp復制到qvfb文件下要重新生成project文件
即用qmake -project

終于搞定了

小結:編譯 Qt Qvfb 問題出現解決實例的內容介紹完了,希望本文對你有所幫助。

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-06-30 14:44:16

QT Qvfb Embedded

2011-07-01 13:31:29

Ubuntu Linux QVFB

2011-06-29 17:00:26

QT 靜態編譯 Debug

2011-07-04 10:56:10

Qt 移植 編譯

2010-06-12 12:46:04

Grub Rescue

2011-08-24 17:41:16

MySQL死鎖

2010-01-15 10:31:19

Linux編譯

2011-07-04 10:09:19

Qt Creator BUG

2011-07-05 14:29:44

Ubuntu QT Mysql

2017-06-14 22:11:57

數據庫MySQL死鎖

2011-06-21 16:13:51

Qt Oracle 驅動

2011-08-23 14:18:13

LUA 5.1編譯vs2005

2010-06-01 14:51:45

MySQL驅動

2011-07-04 15:13:31

QT MPlayer 移植

2011-06-22 17:49:35

Linux Qt 串口

2011-07-05 14:23:07

QT MySQL 驅動

2011-06-29 18:02:58

Qt 中文 翻譯

2011-06-13 16:16:32

Qt 中文問題

2011-04-29 11:02:31

激光打印機

2009-07-10 17:16:39

MyEclipse不編
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费成人高清在线视频 | 高清久久久 | 日韩视频在线免费观看 | 久久久久久蜜桃一区二区 | 国产yw851.c免费观看网站 | 国产高清一区二区三区 | 国产乱精品一区二区三区 | 久久青| 男人天堂网址 | 亭亭五月激情 | 久久国产精品99久久久久久丝袜 | 中国美女撒尿txxxxx视频 | www日本高清 | 国产日产欧产精品精品推荐蛮挑 | 中文在线一区二区 | 成人在线视频看看 | 国产一区二区三区免费观看视频 | 久久av网站 | www.日本精品 | 久久高清 | 欧美性a视频 | 激情一区二区三区 | 久久久www成人免费无遮挡大片 | 中文字幕在线播放第一页 | 国产激情网| 亚洲视频一区在线 | 亚洲精品一区中文字幕 | 狠狠综合久久av一区二区老牛 | 曰批视频在线观看 | 国产成都精品91一区二区三 | 免费v片 | 免费毛片网站 | 欧美自拍日韩 | 精品亚洲永久免费精品 | 女女爱爱视频 | 精品国产乱码一区二区三区 | 看一级毛片视频 | 久久综合久色欧美综合狠狠 | 亚洲看片网站 | 亚洲性人人天天夜夜摸 | 国产色婷婷 |