我知道通常linux会在系统的特定文件夹中搜索动态库,例如/lib, /usr/lib/, /usr/local/lib
。如果没有找到正在运行的程序所需的共享库,那么它将显示错误。
我的问题是:为什么linux没有实现该功能来查找当前文件夹中的库。可以说,在上面提到的所有文件夹中搜索共享库之后,它会在说出找不到库之前搜索当前文件夹中的共享库。
这个功能难以实现吗?或者我错过了什么?
答案 0 :(得分:1)
您要求的功能并不难实现,但它会被视为安全风险。您可以在LD_LIBRARY_PATH环境变量的帮助下指定共享库。
您可以找到更多here:
答案 1 :(得分:1)
添加。通常不建议使用LD_LIBRARY_PATH
,因为它会带来安全风险,并且还会使最终用户无法预测程序行为。如果您绝对想要沿着这条路走下去,并希望避免明确设置LD_LIBRARY_PATH
,那么您可以
-Wl,-rpath -Wl,'$ORIGIN'
LD_LIBRARY_PATH
和然后运行应用程序