Linux可执行文件动态库依赖

2023-12-25 19:40:02

可执行文件动态库依赖

在执行程序时,经常遇到

./LinuxApp.exe: error while loading shared libraries: libmodbus.so.5: cannot open shared object file: No such file or directory

  • 查看系统的共享库缓存,以确定库的安装路径

    ldconfig -p

  • 查看当前的库文件的查找路径

    echo $LD_LIBRARY_PATH

如果有动态库,可以把库文件放入

/usr/lib

或者

/usr/local/lib

也可以放入指定目录下,然后在环境变量LD_LIBRARY_PATH中加入指定目录

在构建可执行文件时,你可以使用 -rpath-rpath-link 选项指定运行时搜索库的路径。这可以在链接阶段通过 CMake 或手动编写构建脚本来完成。

set(CMAKE_INSTALL_RPATH "/path/to/directory")

请注意,使用 rpathLD_LIBRARY_PATH 等方法可能会导致系统在不同环境中运行时出现问题。确保你的解决方案适用于特定的使用场景。

文章来源:https://blog.csdn.net/weixin_43739167/article/details/135206652
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。