繁体   English   中英

在Linux上运行时覆盖libstdc ++搜索路径

[英]Overriding libstdc++ search path at runtime on Linux

我正在尝试为我的游戏Open Hexagon创建一个独立于发行版的.tar.gz存档,该存档使用最新版本的GCC(4.8.1)编译并使用最新版本的libstdc++

由于它已经使用了很多共享库,我决定将游戏与所需的.so文件一起部署,包括正确版本的libstdc++

我使用LD_LIBRARY_PATH更改默认库搜索路径。 不幸的是,Linux(与Windows不同)始终优先考虑/usr/lib/ ,即使设置了LD_LIBRARY_PATH也是如此。

有没有办法在运行时覆盖libstdc++的搜索路径? 到目前为止我看到的唯一解决方案是在编译时弄乱rpathrunpath ,这是我想要避免的。 另一个解决方案是静态链接,但我听说它在Linux中是一种不好的做法,我也在我的游戏中使用自动更新程序,它自动更新最新的.so库。

使用“export LD_LIBRARY_PATH = [my new path]:$ LD_LIBRARY_PATH”对我有用。 它不会将/ usr / lib置于更高的优先级。

部分通过在编译时删除RPATH来解决。 尽管如此,仍然存在不同版本的glibc在旧版发行版上的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM