LD代表*unix上的LD_LIBRARY_PATH变量是什么意思?

Mar*_*ior 10 unix linux

我知道这LD_LIBRARY_PATH是一个环境变量,链接器将查找共享库(包含共享对象)以与可执行代码链接.

但是LD代表什么呢,它适用于Load吗?或列表目录?

Ric*_*ton 11

链接.*nix链接器称为ld.当链接具有动态库的程序时,链接器会添加其他代码以查找动态库以解析非静态链接的符号.通常这段代码在/ lib和/ usr/lib中查找.LD_LIBRARY_PATH是要搜索的其他目录的冒号分隔列表.

"ldd"是一个方便的程序,可以查看库的位置:例如,尝试"ldd/bin/ls".

不过,它也可能意味着"装载机".;-)

社论:

作为(半)有趣的旁注:我认为动态库有一天会消失.当磁盘空间和系统内存不足时需要它们.使用它们会有性能损失(即需要解析符号并编辑目标代码).在现代3GB内存和7秒启动时间中,回到静态链接可能是合适的.

除了每个C++程序神奇地增长到3MB的事实.;-)

  • 动态库不会去任何地方.事实上,我可以升级libpng.so,并且突然所有使用它的应用程序也都升级了,这太有价值了.如果有安全漏洞.在libpng代码中,所有使用它的程序都是静态链接的,你就是SOL.动态库文件不是这种情况.此外,它们还节省了磁盘空间和内存.("我们有更多"是不浪费的借口.) (3认同)
  • 现代linux系统上的链接器本身可能是/lib/ld-linux.so.2或类似的东西.如果从没有参数的命令行运行它,你会得到一个很好的小帮助消息. (2认同)

Ven*_*oju 5

LD_LIBRARY_PATH - 代表 LOAD LIBRARY PATH 或有时称为 LOADER LIBRARY PATH