IMX8MINI增加QT的qtmultimedia5.10組件問題解決

平臺:imx8mini

軟件:linux 

編譯:yocto

按NXP文檔通過yocto編譯出來的系統,在rootfs裏,有一部分qtmultimedia的庫,但不全,且沒有測試用例。所以要增加這個部分的程序庫。通過增加編譯,放到文件系統裏,總是出現:

defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera"

這個錯誤 

通過網絡查到的原因是沒有安裝一個插件,但我這個是嵌入式系統,不能通過安裝。所以只能從別的方面來找原因。

通過跟進源碼,發現如下:

Got keys from plugin meta data ("audiocapture")
QFactoryLoader::QFactoryLoader() checking directory path "/mnt/sd/mediaservice" ...
QMediaPluginLoader: loading metadata for iid  "org.qt-project.qt.mediaserviceproviderfactory/5.0"  at location  "/mediaservice"
QMediaPluginLoader: Inserted index  0  into metadata:  QJsonObject({"Keys":["gstreameraudiodecode"],"Services":["org.qt-project.qt.audiodecode"],"index":0})
QMediaPluginLoader: Inserting new list for key:  "org.qt-project.qt.audiodecode"
QMediaPluginLoader: Inserted index  1  into metadata:  QJsonObject({"Keys":["gstreamercamerabin"],"Services":["org.qt-project.qt.camera"],"index":1})
QMediaPluginLoader: Inserting new list for key:  "org.qt-project.qt.camera"
QMediaPluginLoader: Inserted index  2  into metadata:  QJsonObject({"Keys":["gstreamermediacapture"],"Services":["org.qt-project.qt.audiosource"],"index":2})
QMediaPluginLoader: Inserting new list for key:  "org.qt-project.qt.audiosource"
QMediaPluginLoader: Inserted index  3  into metadata:  QJsonObject({"Keys":["gstreamermediaplayer"],"Services":["org.qt-project.qt.mediaplayer"],"index":3})
QMediaPluginLoader: Inserting new list for key:  "org.qt-project.qt.mediaplayer"
QMediaPluginLoader: Inserted index  4  into metadata:  QJsonObject({"Keys":["audiocapture"],"Services":["org.qt-project.qt.audiosource"],"index":4})
Cannot load library /usr/lib/qt5/plugins/mediaservice/libgstcamerabin.so: (libQt5MultimediaGstTools.so.5: cannot open shared object file: No such file or directory)
QLibraryPrivate::loadPlugin failed on "/usr/lib/qt5/plugins/mediaservice/libgstcamerabin.so" : "Cannot load library /usr/lib/qt5/plugins/mediaservice/libgstcamerabin.so: (libQt5MultimediaGstTools.so.5: cannot open shared object file: No such file or directory)"
defaultServiceProvider::requestService(): plugins.isEmpty()
 - true
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera"
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5/plugins/wayland-graphics-integration-client" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so"
Found metadata in lib /usr/lib/qt5/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so, metadata=
 

 

上面的信息裏:

libQt5MultimediaGstTools.so.5: cannot open shared

這個提示很重要,在文件系統裏確定沒查到,去編譯完成的找到了文件,補進去。

這個問題就解決了。

經驗:跟進源碼,才能從根本處解決問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章