Linux安装源码编译出来的库后,如何让系统默认识别到.
如编译后安装在/usr/local/aarch64_qt5.12.0 下:
1、设置动态库链接配置
如果不设置动态库连接,系统就找不到需要的*.so,导致软件执行失败。
可以ldd一下,如:
pi@NanoPi-NEO-Plus2:~$ldduntitledlinux-vdso.so.1=>(0x0000ffffba839000)libQt5Widgets.so.5=>notfoundlibQt5Gui.so.5=>notfoundlibQt5Core.so.5=>notfoundlibpthread.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:~$ldduntitledlinux-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)2、设置环境变量
执行相关程序时,不需要切换到指定目录才能执行,可以在任意目录下执行。
设置方法:
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/local/games