Linux可执行文件动态库依赖

可执行文件动态库依赖

在执行程序时,经常遇到

./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 等方法可能会导致系统在不同环境中运行时出现问题。确保你的解决方案适用于特定的使用场景。

你可能感兴趣的:(Linux学习过程笔记,随笔,linux,运维,服务器)