【发布时间】:2013-06-18 19:17:05
【问题描述】:
我正在尝试为我的游戏 Open Hexagon 创建一个独立于发行版的 .tar.gz 存档,该游戏使用最新版本的 GCC (4.8.1) 编译并使用最新版本的libstdc++。
因为它已经使用了很多共享库,所以我决定将游戏连同它需要的.so 文件一起部署,包括libstdc++ 的正确版本。
我使用LD_LIBRARY_PATH 更改了默认库搜索路径。不幸的是,Linux(不同于 Windows)总是优先考虑/usr/lib/,即使设置了LD_LIBRARY_PATH。
有没有办法在运行时覆盖libstdc++ 的搜索路径?到目前为止,我看到的唯一解决方案是在编译时弄乱rpath 或runpath,这是我想避免的。另一种解决方案是静态链接,但我听说这在 Linux 中是一种不好的做法,而且我还为我的游戏使用了一个自动更新程序,它只自动更新最新的 .so 库。
【问题讨论】:
-
能否请您指向手册页上说的 linux /usr/lib/ 优先于 LD_LIBRARY_PATH
标签: c++ linux shared-libraries ld dynamic-linking