Linux安裝原始碼編譯後的函式庫後,我們需要讓系統能夠預設辨識它們。
假設我們已經將函式庫安裝在路徑/usr/local/aarch64_qt5.12.0
下:
如果不進行動態庫連結配置,系統將無法找到所需的*.so文件,導致軟體執行失敗。
可以透過執行ldd
指令來查看依賴情況,例如:
pi@NanoPi-NEO-Plus2:~$ ldd untitled linux-vdso.so.1 => (0x0000ffffba839000) libQt5Widgets.so.5 => not found libQt5Gui.so.5 => not found libQt5Core.so.5 => not found libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffba7e2000) libstdc++.so.6 => /usr/lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffffba653000) libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffba5a6000) libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffba585000) libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffba43e000) /lib/ld-linux-aarch64.so.1 (0x0000ffffba80e000)
最笨的方法就是將編譯出來對應的so 拷貝到/usr/lib或/lib下,如果對應的so很多,那麼就涼了。
設定方法:
1)在/etc/ld.so.conf.d路徑下,建立動態庫設定檔*.conf,例如:
sudo vim /etc/ld.so.conf.d/Qt5.conf
在文件中新增:
/usr/local/aarch64_qt5.12.0/lib
2)載入動態庫配置
執行指令:sudo ldconfig
#pi@NanoPi-NEO-Plus2:~$ ldd untitled linux-vdso.so.1 => (0x0000ffffa4b1a000) libQt5Widgets.so.5 => /usr/local/aarch64_qt5.12.0/lib/libQt5Widgets.so.5 (0x0000ffffa451d000) libQt5Gui.so.5 => /usr/local/aarch64_qt5.12.0/lib/libQt5Gui.so.5 (0x0000ffffa4039000) libQt5Core.so.5 => /usr/local/aarch64_qt5.12.0/lib/libQt5Core.so.5 (0x0000ffffa39ed000) libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffa39c1000) libstdc++.so.6 => /usr/lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffffa3832000) libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffa3785000) libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffa3764000) libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffa361d000) libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffffa360a000) /lib/ld-linux-aarch64.so.1 (0x0000ffffa4aef000)
#執行相關程式時,不需要切換到指定目錄才能執行,可以在任意目錄下執行。
設定方法:
1.目前會話暫時生效:命令列輸入 export PATH=$PATH:/usr/local/aarch64_qt5.12.0/bin
2.使用者永久生效:vi ~/.bashrc 最後一行輸入 export PATH=$PATH:/usr/local/aarch64_qt5.12.0/bin
讓環境變數生效:source .bashrc
##3.全域永久生效:
在/etc/profile或/etc/bash.bashrc 中為$PATH新增路徑,如果名字一樣 需要把新的路徑放在其他路徑前面。
export PATH=$PATH:/usr/local/aarch64_qt5.12.0/bin
讓環境變數生效:source /etc/profile
pi@NanoPi-NEO-Plus2:~$ echo $PATH /usr/local/aarch64_qt5.12.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/
以上是Linux設定動態庫路徑和環境變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!