Rob*_*y75 6 c shared-libraries
通常,程序(在 Linux 中)使用 LD_LIBRARY_PATH 来定位它们的共享库,但我想使用自定义路径,而不永久更改 LD_LIBRARY_PATH。
基本上,bash-wrapper 可以轻松实现:
#!/bin/sh
export LD_LIBRARY_PATH=/my_lib_path/
/my_bin_path/myprogram $*
Run Code Online (Sandbox Code Playgroud)
(Bash 仅在此脚本中更改 LD_LIBRARY_PATH 而不是永久更改)
我想知道是否有可能在没有丑陋的 bash-hack 的情况下在单个可执行文件中用纯 C 做同样的事情。所有路径和库的确切名称在编译时都是已知的。
将-rpath选项传递给ld,或者,通过您的编译器-Wl,-rpath。它允许您扩展搜索路径。它通常由希望从某个插件目录加载模块的可执行文件使用。您可以通过此方法添加任意数量的目录。