linux (ubuntu環境)下發布QT程序到非開發機器
1、ldd 查看動態庫缺失
首先,保證在開發機器上通過 QTCreator 能構建出項目並能運行成功。
在 windows 平臺下,我們使用 windeployqt 去拷貝動態庫,而在 linux 下,也有對應的命令是 ldd 。來到 release文件夾下,使用 ldd VPlayer 命令查看 VPlayer(暫且稱我們的程序名爲 VPlayer)的動態庫鏈接情況,假如我們看到下面這種情況,有的庫 not found:
首先,在紅框下方,可以看到一些依賴庫指向了 ubuntu 系統目錄 usr/lib ,一種原因是這些庫是系統自帶庫,一種原因是 apt-get 的默認安裝路徑的 lib 庫就在 usr/lib 下,這個時候啓動 VPlayer ,系統會自動去這個目錄下搜索動態依賴庫。因此我們要做的就是把我們的動態庫路徑(即爲 release 下 bin 目錄)告訴系統,讓啓動 VPlayer 時去我們指定的目錄下搜索依賴庫。
2、添加動態庫搜索路徑
把我們的release添加進系統的搜索路徑常見的有3種方式:
- 添加 VPlayer 目錄到系統共享庫搜索路徑:進入 etc/ld.so.conf.d 目錄,使用命令 sudo touch VPlayer.conf 創建一個 conf 文件,裏面寫上當前應用程序的 bin 目錄,例如 VPlayer 的 bin 是 /home/zhl/bin ,然後執行 sudo ldconfig 去更新緩存文件,可立即生效。
- 添加臨時環境變量:LD_LIBRARY_PATH=/home/zhl/bin ,此方法只在當前 s