我有一个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/