QT_DEBUG_PLUGINS=1


Qt的編程中包含了插件模式,使得程序的擴展性非常好,但插件的動態加載的檢查也比較嚴格,這次編譯數據庫驅動插件就碰到了不少問題。實際上,可以在系統的 環境變量中設置QT_DEBUG_PLUGINS=1 ,即在終端中執行 export QT_DEBUG_PLUGINS=1

再執行程序加載插件時,再系統控制台上會輸出許多加載插件時的調試信息,可以清楚的看到系統嘗試加載了哪些插件,哪些是成功的,哪些沒有成功,原因是什么都寫的比較清楚。因此,如果自己編譯的插件庫無法加載,可以用這個方式檢查以下到底是哪里的問題。

//-------------------------------------

在沒有添加QT_DEBUG_PLUGINS=1時,運行程序:

Open: "/dev/ttyO1"
Open: "/dev/ttyO4"
+++++++++++++++++++++++++++++++++++++++++++++++++++.
++++++++++++++++++++++++Create Command Thread.....
+++++++++++++++++++++++++++++++++++++++++++++++++++.
defaultServiceProvider::requestService(): no service found for - "org.qt-project
.qt.audiosource"
Input Devices Can Used :
()
===========

Default Input Devices :
""
-------------------

Encoder:

//-------------------------------------

 

 

添加QT_DEBUG_PLUGINS=1(即在即在終端中執行 export QT_DEBUG_PLUGINS=1)

//-------------------------------------

Open: "/dev/ttyO1"
Open: "/dev/ttyO3"
Open: "/dev/ttyO4"
QFactoryLoader::QFactoryLoader() checking directory path "/workspace/mediaservic
e" ...
QFactoryLoader::QFactoryLoader() looking at "/workspace/mediaservice/libqtmedia_
audioengine.so"
+++++++++++++++++++++++++++++++++++++++++++++++++++.
++++++++++++++++++++++++Create Command Thread.....
+++++++++++++++++++++++++++++++++++++++++++++++++++.
QElfParser: '/workspace/mediaservice/libqtmedia_audioengine.so' is an invalid EL
F object (string table seems to be at a100)
"'/workspace/mediaservice/libqtmedia_audioengine.so' is an invalid ELF object (s
tring table seems to be at a100)"
         not a plugin
defaultServiceProvider::requestService(): no service found for - "org.qt-project
.qt.audiosource"
Input Devices Can Used :
()
===========

Default Input Devices :
""
-------------------

 

可以看到 提示的更詳細,libqtmedia_audioengine.so 有問題,再排查吧

 

果然 重新換一下這個so 再運行 就正常了。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM