如何将库/可执行文件 RPATH 修补为不同的值?
How can a library / executable RPATH be patched to a different value?
我知道可以使用 -rpath
链接器选项设置可执行文件或库的 "search path"。当依赖项安装在对象加载器通常不考虑的非标准位置时,这很有用,通常认为优于设置 LD_LIBRARY_PATH
环境变量。
但是,在我的具体情况下,集成测试机器和生产机器之间的路径 不同 (that 的意义不大,不幸的是,不适合讨论。)
我真的更喜欢对集成测试和生产平台使用相同的包。我的想法是提供一个选择正确目标目录的安装脚本,然后将库/可执行文件 RPATH 修补为正确的值。
此时我发现我不知道...
如何将库/可执行文件 RPATH 修补为不同的值?
我假设有一些命令行工具可用于此,但我不知道。
如果它很重要,我正在使用 CMake setup 来构建和创建 .tgz 包 (cpack -G TGZ
)。不幸的是,"Real" 包(RPG、DEB)不是一个选项。
我知道可以使用 -rpath
链接器选项设置可执行文件或库的 "search path"。当依赖项安装在对象加载器通常不考虑的非标准位置时,这很有用,通常认为优于设置 LD_LIBRARY_PATH
环境变量。
但是,在我的具体情况下,集成测试机器和生产机器之间的路径 不同 (that 的意义不大,不幸的是,不适合讨论。)
我真的更喜欢对集成测试和生产平台使用相同的包。我的想法是提供一个选择正确目标目录的安装脚本,然后将库/可执行文件 RPATH 修补为正确的值。
此时我发现我不知道...
如何将库/可执行文件 RPATH 修补为不同的值?
我假设有一些命令行工具可用于此,但我不知道。
如果它很重要,我正在使用 CMake setup 来构建和创建 .tgz 包 (cpack -G TGZ
)。不幸的是,"Real" 包(RPG、DEB)不是一个选项。