为什么在运行时更改LD_LIBRARY_PATH在加载可执行文件后不反映可执行文件
Why change in LD_LIBRARY_PATH at Runtime dosen't Reflect on the Executable once the Executable gets loaded
我正在尝试更改C++程序中的LD_LIBRARY_PATH
。我能够使用 getenv("LD_LIBRARY_PATH")
获取其值并使用 setenv()
设置其值(我知道这是有效的,因为当我再次调用getenv("LD_LIBRARY_PATH")
时,我得到了更新的值),但从程序内部更改其值对它没有任何影响: 我仍然收到以下错误消息:
Failed to Load the shared library file
如果我在加载可执行文件或启动应用程序之前设置值,它可以正常工作。
不幸的是,从正在运行的程序中设置LD_LIBRARY_PATH
不会对其产生影响。 原因是LD_LIBRARY_PATH
由动态链接加载程序 (ld.so) 处理,这是启动程序的程序。程序本身不处理LD_LIBRARY_PATH
因此更改它不会产生任何影响。
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 将 bmp 文件加载到 TSpeedButton 中
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 程序在使用 system() 启动另一个可执行文件时停止
- 如何更改使用 CPack 安装的可执行文件的名称?
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 如何将图像传入C++可执行文件并将输出图像存储在新目录中?
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 从 C 可执行文件加载动态库时收到错误C++"undefined symbol"
- 可执行文件库加载的操作
- 在动态加载的位置无关的可执行文件中分离错误
- 为什么主可执行文件和 dlopen 加载的共享库共享命名空间静态变量的一个副本?
- 从电子项目运行的可执行文件未加载资源
- Windows 10未加载版本可执行文件的DLL
- 正在加载与可执行文件合并的文件
- 为什么在运行时更改LD_LIBRARY_PATH在加载可执行文件后不反映可执行文件
- 从相对于加载可执行文件的目录加载.so