为什么linux不在同一文件夹中搜索共享库

时间:2016-12-10 10:56:37

标签: linux shared-libraries

我知道通常linux会在系统的特定文件夹中搜索动态库,例如/lib, /usr/lib/, /usr/local/lib。如果没有找到正在运行的程序所需的共享库,那么它将显示错误。

我的问题是:为什么linux没有实现该功能来查找当前文件夹中的库。可以说,在上面提到的所有文件夹中搜索共享库之后,它会在说出找不到库之前搜索当前文件夹中的共享库。

这个功能难以实现吗?或者我错过了什么?

2 个答案:

答案 0 :(得分:1)

您要求的功能并不难实现,但它会被视为安全风险。您可以在LD_LIBRARY_PATH环境变量的帮助下指定共享库。

您可以找到更多here

答案 1 :(得分:1)

添加。通常不建议使用LD_LIBRARY_PATH,因为它会带来安全风险,并且还会使最终用户无法预测程序行为。如果您绝对想要沿着这条路走下去,并希望避免明确设置LD_LIBRARY_PATH,那么您可以

  • -Wl,-rpath -Wl,'$ORIGIN'
  • 相关联
  • 不是直接调用你的应用程序,而是通过一个包装器shell脚本来设置正确的LD_LIBRARY_PATH然后运行应用程序