2014-01-20 332 views
7

我想將我用Qt編寫的項目發佈到Ubuntu/Linux用戶。如果他們試圖執行他們收到此錯誤信息生成發行版本,因爲他們還沒有安裝的Qt:Qt項目發佈ubuntu - 加載共享庫時出錯:libQt5Widgets.so.5

錯誤而載入共享庫:libQt5Widgets.so.5: 無法打開共享對象文件:沒有這樣的文件或目錄

有沒有辦法添加所有的庫如libQt5Widgets.so.5到可執行的,就像Windows與qt.conf,在那裏你可以指定Plugins文件夾下的文件夾?

+0

不清楚「將庫添加到庫所在的文件夾」的含義。你的意思是你的應用程序駐留在哪裏?然後你提到'就像在qt.conf下的windows下一樣'。我想你想要將Qt庫複製到一個文件夾,然後告訴應用程序庫駐留的位置? –

+0

@KurtPattyn'我想你想將Qt庫複製到一個文件夾中,然後告訴應用程序庫駐留在哪裏?「這正是我想要的。 – Niklas

+0

你是怎麼解決這個搭檔的? – Michael

回答

0

使用Ubuntu的包管理系統對項目進行打包可能是最簡單的。當您的項目安裝時,Qt依賴關係將由包管理器自動安裝。只要Ubuntu的軟件包存儲庫中有可用的Qt 5版本,那就是最好的辦法了。它會爲你節省很多的痛苦。

+0

所以你的意思是'sudo apt-get install libqt5'? – Niklas

+0

是的,您應該將自己的項目作爲apt包提供,具體取決於libqt5。然後,當您的軟件包安裝時,應該自動拉入libqt5。 –

1

一種解決方案可能是:

export LD_LIBRARY_PATH=/path/to/dir/with/libs:$LD_LIBRARY_PATH 

但一個妥善的解決辦法是安裝Qt庫系統和/或打包的應用程序的Ubuntu(你的情況)。

+0

這不能自動完成,對吧?因爲它取決於用戶放置程序的位置。 – Niklas

+0

當然,您可以提供一個腳本來啓動您的應用程序,其中庫路徑是您當前的目錄。 – kikeenrique

1

當我看到這個錯誤時,我最近通過SDK管理器更新了Android工具。

重新安裝要修復的SDK工具。這是我的機器的工作原理。