我有一个c ++共享库,作为其正常行为的一部分,fork()/ execs()是另一个包含一些不稳定的旧代码的可执行文件。该可执行文件除了与该库一起使用外没有其他用途,因此我希望避免将其放在PATH目录中。我还希望能够在各个位置安装多个副本,因此不希望使用硬编码的路径。是否有与RPATH等效的东西,它将允许exec()查找此可执行文件?或者,是否可以从库本身查询共享库的rpath?

编辑:这篇文章表明后者是可能的。如果有人知道所问问题的答案,我将保留此意见。 Is there a way to inspect the current rpath on Linux?

最佳答案

您始终可以使用getenv在共享库中获取环境,但是RPATH确实是您要使用的环境吗?让共享库在用户的主目录(或自定义环境变量)中具有某种配置文件,告诉它使用哪个位置运行外部二进制文件,这会更好吗?

关于c++ - 相当于可执行文件的RPATH,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5505326/

10-11 22:40
查看更多