日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Can not load “libqxcb.so”

發(fā)布時(shí)間:2023/12/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Can not load “libqxcb.so” 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天將qt的程序打包在客戶機(jī)器上部署,彈出如下提示:

Got keys from plugin meta data ("xcb") Cannot load library /home/lc1/Desktop/comTool/bin/platforms/libqxcb.so: (/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5: version `Qt_5_PRIVATE_API' not found (required by /home/lc1/Desktop/comTool/bin/platforms/libqxcb.so)) QLibraryPrivate::loadPlugin failed on "/home/lc1/Desktop/comTool/bin/platforms/libqxcb.so" : "Cannot load library /home/lc1/Desktop/comTool/bin/platforms/libqxcb.so: (/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5: version `Qt_5_PRIVATE_API' not found (required by /home/lc1/Desktop/comTool/bin/platforms/libqxcb.so))" qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

這種錯(cuò)誤只會在linux或類linux操作系統(tǒng)上出現(xiàn),Windows上不會出現(xiàn)。因?yàn)閃indows機(jī)器不需要qxcb庫。造成這種錯(cuò)誤的原因是:1):部署軟件時(shí),沒有將Qt插件文件下的platforms中的libqxcb.so庫部署上去。2): 原因1)中的libqxcb.so庫部署了,但是原因 1)中的libqxcb.so庫又依賴了其它的Qt庫,而這些依賴的庫本應(yīng)該從你提供的安裝包的庫目錄查找的,現(xiàn)在卻是從其它地方找的,如:從上面可以看到libqxcb.so依賴了libQt5XcbQpa.so.5,這個(gè)庫本應(yīng)該在你安裝目錄下,比如:你安裝目錄下有l(wèi)ib文件夾,且lib文件夾下有個(gè)libQt5XcbQpa.so.5,但從上面的提示可以看出,程序搜索的是/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5,而不是你安裝包目錄下的lib文件夾下的libQt5XcbQpa.so.5,雖然說都是libQt5XcbQpa.so.5,但版本不一致可能會導(dǎo)致出現(xiàn)加載庫失敗,比如:你部署機(jī)器的linux系統(tǒng)自帶的Qt(一般是因?yàn)閘inux有圖形界面,而圖形界面用到了Qt,所以對于圖形界面的linux系統(tǒng)一般會有些Qt的庫)版本是5.6.1,而你部署的程序是用其它版本開發(fā)的,比如:Qt 5.14.1,這就會導(dǎo)致不兼容而加載庫失敗。

解決方法如下:

1):在你程序需要部署的目錄即安裝包目錄下新建platforms目錄。

2):到你開發(fā)的機(jī)器上的Qt安裝目錄下的plugins/platforms目錄下找到libqxcb.so,并將其拷貝到步驟1)中的platforms目錄。

3):執(zhí)行l(wèi)dd libqxcb.so 以便找出libqxcb.so依賴的所有Qt庫。

4):將步驟3)中找到的依賴庫中所有和Qt有關(guān)的庫拷貝到你安裝包下的庫目錄下,如:

安裝包目錄/lib

????? 然后建立一些庫的鏈接。

經(jīng)過這四步驟后,目錄應(yīng)該如下;

?

? ?

5):執(zhí)行:

sudo /etc/profile

在文件的末尾加入:

export LD_LIBRARY_PATH=LD_LIBRARY_PATH:安裝包目錄/lib

注意:有部分linux在/etc/profile中設(shè)置LD_LIBRARY_PATH不起作用,對這部分linux請自行查閱相關(guān)手冊。

6):重啟linux。

7):執(zhí)行如下命令:

??????

echo $LD_LIBRARY_PATH

如果輸出中包含了 “?安裝包目錄/lib”目錄,則5)步驟配置成功

如果上面都沒問題,則部署的程序應(yīng)該能跑起來。

總結(jié)

以上是生活随笔為你收集整理的Can not load “libqxcb.so”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。