进一步解释我的情况。我知道当您使用动态库时,需要将库路径导出到LD_LIBRARY_PATH,以便可执行文件在它们运行时找到库。如果我不这样做,则会出现错误,无法找到共享库。
现在,如果我将以下链接器标志" -L / path /添加到/ library / -lthelibrary.so",我可以运行我的可执行文件而不将库路径导出到LD_LIBRARY_PATH。
为什么会这样?
答案 0 :(得分:0)
首先,您通常需要来设置LD_LIBRARY_PATH
来运行二进制文件。加载程序使用此环境变量来查找其他位置,以查找要在执行二进制文件时加载的.so
文件。
LD_LIBRARY_PATH
文件,则 需要设置.so
。如果任何直接引用的.so
文件依赖于与创建.so
文件时不同的内容,也需要它。
使用ldd
命令检查二进制文件中的依赖关系信息,以便更清楚地了解创建二进制文件时链接程序保存的内容。