1. 程式人生 > >linux設定動態庫路徑和環境變數

linux設定動態庫路徑和環境變數

linux安裝原始碼編譯出來的庫後,如何讓系統預設識別到,

如編譯後安裝在/usr/local/aarch64-qt下

1、設定動態庫連結配置

如果不設定動態庫連線,系統就找不到需要的*.so,導致軟體執行失敗。

可以ldd一下,如:

[email protected]:~$ 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-qt/lib

2)載入動態庫配置

執行命令:sudo ldconfig

[email protected]:~$ ldd untitled
        linux-vdso.so.1 =>  (0x0000ffffa4b1a000)
        libQt5Widgets.so.5 => /usr/local/aarch64-qt/lib/libQt5Widgets.so.5 (0x0000ffffa451d000)
        libQt5Gui.so.5 => /usr/local/aarch64-qt/lib/libQt5Gui.so.5 (0x0000ffffa4039000)
        libQt5Core.so.5 => /usr/local/aarch64-qt/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)

2、設定環境變數

執行相關程式時,不需要切換到指定目錄才能執行,可以在任意目錄下執行。

設定方法:

在/etc/profile中為$PATH新增路徑,如果名字一樣 需要把新的路徑放在其他路徑前面。

export PATH=/usr/local/aarch64-qt/bin:$PATH

讓環境變數生效:source /etc/profile

[email protected]:~$ echo $PATH
/usr/local/aarch64-qt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games