查看原文
其他

Linux设置动态库路径和环境变量

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记!

链接:https://www.cnblogs.com/releases/p/10218830.html

Linux安装源码编译出来的库后,如何让系统默认识别到.

如编译后安装在/usr/local/aarch64_qt5.12.0 下:

1、设置动态库链接配置

如果不设置动态库连接,系统就找不到需要的*.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)

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


温馨提示

由于微信公众号近期改变了推送规则,如果您想经常看到我们的文章,可以在每次阅读后,在页面下方点一个「赞」或「在看」,这样每次推送的文章才会第一时间出现在您的订阅列表里。

版权声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。


猜你喜欢:

实用 | 分享几个非常实用的开源项目

每天都能见到的 extern "C" 并没有那么简单!

不按套路出牌,这么来写IIC驱动?

干货 | C语言实现面向对象编程(附代码)

2020年精选原创笔记汇总

在公众号聊天界面回复1024,可获取嵌入式资源;回复 ,可查看文章汇总。

文章都看完了不点个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存